<?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>70846</bug_id>
          
          <creation_ts>2011-10-25 13:49:19 -0700</creation_ts>
          <short_desc>Flesh out WKBrowsingContextLoadDelegate a bit</short_desc>
          <delta_ts>2011-10-25 15:34:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>490320</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-10-25 13:49:19 -0700</bug_when>
    <thetext>Flesh out WKBrowsingContextLoadDelegate a bit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490323</commentid>
    <comment_count>1</comment_count>
      <attachid>112394</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-10-25 13:50:13 -0700</bug_when>
    <thetext>Created attachment 112394
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490327</commentid>
    <comment_count>2</comment_count>
      <attachid>112394</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-10-25 13:52:16 -0700</bug_when>
    <thetext>Comment on attachment 112394
Patch

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

&gt; Source/WebKit2/UIProcess/API/mac/WKBrowsingContextController.mm:218
&gt; +    WKBrowsingContextController *browsingContext = (WKBrowsingContextController *)clientInfo;
&gt; +    [browsingContext.loadDelegate browsingContextControllerDidReceiveServerRedirectForProvisionalLoad:browsingContext];
&gt; +}

This does not check that the delegate responds to the selector. The code needs to do that, and possibly cache the result as well.

&gt; Source/WebKit2/UIProcess/API/mac/WKBrowsingContextController.mm:257
&gt; +    WKBrowsingContextController *browsingContext = (WKBrowsingContextController *)clientInfo;
&gt; +    [browsingContext.loadDelegate browsingContextControllerDidFailLoad:browsingContext withError:(NSError *)cfError.get()];

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490412</commentid>
    <comment_count>3</comment_count>
      <attachid>112415</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-10-25 15:29:53 -0700</bug_when>
    <thetext>Created attachment 112415
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490413</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-10-25 15:30:38 -0700</bug_when>
    <thetext>Now with a test!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490418</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-10-25 15:34:50 -0700</bug_when>
    <thetext>Committed r98399: &lt;http://trac.webkit.org/changeset/98399&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112394</attachid>
            <date>2011-10-25 13:50:13 -0700</date>
            <delta_ts>2011-10-25 15:29:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70846-20111025135012.patch</filename>
            <type>text/plain</type>
            <size>5705</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDk4Mzg5KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMTAtMjUgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBGbGVzaCBvdXQgV0tCcm93c2luZ0NvbnRl
eHRMb2FkRGVsZWdhdGUgYSBiaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcwODQ2CisKKyAgICAgICAgQWRkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZCwgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZAorICAgICAgICBhbmQg
ZGlkRmFpbExvYWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW06
CisgICAgICAgIChkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JG
cmFtZSk6CisgICAgICAgIChkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUp
OgorICAgICAgICAoZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZSk6CisgICAgICAgIChzZXRV
cFBhZ2VMb2FkZXJDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLQnJvd3Np
bmdDb250ZXh0TG9hZERlbGVnYXRlLmg6CisKIDIwMTEtMTAtMjUgIFNhbSBXZWluaWcgIDxzYW1A
d2Via2l0Lm9yZz4KIAogICAgICAgICBNYWtlIGxvYWRGaWxlVVJMOnJlc3RyaWN0VG9GaWxlc1dp
dGhpbjogd29yaywgYWxiZWl0LCB3aXRob3V0IHRoZSBjb3JyZWN0CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tCcm93c2luZ0Nv
bnRleHRDb250cm9sbGVyLm1tCShyZXZpc2lvbiA5ODM4NikKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQkod29ya2luZyBj
b3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRDb250cm9s
bGVyLmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJbnRlcm5hbC5oIgog
CisjaW1wb3J0ICJXS0Vycm9yQ0YuaCIKICNpbXBvcnQgIldLRnJhbWUuaCIKICNpbXBvcnQgIldL
UGFnZS5oIgogI2ltcG9ydCAiV0tSZXRhaW5QdHIuaCIKQEAgLTM0LDYgKzM1LDcgQEAKICNpbXBv
cnQgIldLVVJMQ0YuaCIKICNpbXBvcnQgIldLVVJMUmVxdWVzdC5oIgogI2ltcG9ydCAiV0tVUkxS
ZXF1ZXN0TlMuaCIKKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogI2ltcG9ydCAiV0tCcm93
c2luZ0NvbnRleHRMb2FkRGVsZWdhdGUuaCIKIApAQCAtMjA2LDYgKzIwOCwyNiBAQCBzdGF0aWMg
dm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyCiAgICAgW2Jyb3dzaW5nQ29udGV4dC5s
b2FkRGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckRpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkOmJyb3dzaW5nQ29udGV4dF07CiB9CiAKK3N0YXRpYyB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJS
ZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1l
UmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7
CisgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQorICAgICAgICByZXR1cm47CisK
KyAgICBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKmJyb3dzaW5nQ29udGV4dCA9IChXS0Jy
b3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKiljbGllbnRJbmZvOworICAgIFticm93c2luZ0NvbnRl
eHQubG9hZERlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJEaWRSZWNlaXZlU2VydmVy
UmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQ6YnJvd3NpbmdDb250ZXh0XTsKK30KKworc3RhdGlj
IHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdLUGFnZVJlZiBw
YWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0Vycm9yUmVmIGVycm9yLCBXS1R5cGVSZWYgdXNlckRh
dGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJh
bWUoZnJhbWUpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZXRhaW5QdHI8Q0ZFcnJvclJlZj4g
Y2ZFcnJvcihBZG9wdENGLCBXS0Vycm9yQ29weUNGRXJyb3Ioa0NGQWxsb2NhdG9yRGVmYXVsdCwg
ZXJyb3IpKTsKKworICAgIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250
ZXh0ID0gKFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqKWNsaWVudEluZm87CisgICAgW2Jy
b3dzaW5nQ29udGV4dC5sb2FkRGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckRpZEZh
aWxQcm92aXNpb25hbExvYWQ6YnJvd3NpbmdDb250ZXh0IHdpdGhFcnJvcjooTlNFcnJvciAqKWNm
RXJyb3IuZ2V0KCldOworfQorCiBzdGF0aWMgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUoV0tQ
YWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKIHsKICAgICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkp
CkBAIC0yMjQsMTYgKzI0NiwzMCBAQCBzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUo
V0tQYWdlCiAgICAgW2Jyb3dzaW5nQ29udGV4dC5sb2FkRGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlckRpZEZpbmlzaExvYWQ6YnJvd3NpbmdDb250ZXh0XTsKIH0KIAorc3RhdGljIHZv
aWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJl
ZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJvciwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQoreworICAgIGlmICghV0tGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgUmV0YWluUHRyPENGRXJyb3JSZWY+IGNmRXJyb3IoQWRvcHRD
RiwgV0tFcnJvckNvcHlDRkVycm9yKGtDRkFsbG9jYXRvckRlZmF1bHQsIGVycm9yKSk7CisKKyAg
ICBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKmJyb3dzaW5nQ29udGV4dCA9IChXS0Jyb3dz
aW5nQ29udGV4dENvbnRyb2xsZXIgKiljbGllbnRJbmZvOworICAgIFticm93c2luZ0NvbnRleHQu
bG9hZERlbGVnYXRlIGJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJEaWRGYWlsTG9hZDpicm93c2lu
Z0NvbnRleHQgd2l0aEVycm9yOihOU0Vycm9yICopY2ZFcnJvci5nZXQoKV07Cit9CisKIHN0YXRp
YyB2b2lkIHNldFVwUGFnZUxvYWRlckNsaWVudChXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIg
KmJyb3dzaW5nQ29udGV4dCwgV0tQYWdlUmVmIHBhZ2VSZWYpCiB7CiAgICAgV0tQYWdlTG9hZGVy
Q2xpZW50IGxvYWRlckNsaWVudDsKICAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9m
KGxvYWRlckNsaWVudCkpOwotICAgIAorCiAgICAgbG9hZGVyQ2xpZW50LnZlcnNpb24gPSBrV0tQ
YWdlTG9hZGVyQ2xpZW50Q3VycmVudFZlcnNpb247CiAgICAgbG9hZGVyQ2xpZW50LmNsaWVudElu
Zm8gPSBicm93c2luZ0NvbnRleHQ7CiAgICAgbG9hZGVyQ2xpZW50LmRpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUgPSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOworICAgIGxv
YWRlckNsaWVudC5kaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JG
cmFtZSA9IGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
OworICAgIGxvYWRlckNsaWVudC5kaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJh
bWUgPSBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWU7CiAgICAgbG9hZGVy
Q2xpZW50LmRpZENvbW1pdExvYWRGb3JGcmFtZSA9IGRpZENvbW1pdExvYWRGb3JGcmFtZTsKICAg
ICBsb2FkZXJDbGllbnQuZGlkRmluaXNoTG9hZEZvckZyYW1lID0gZGlkRmluaXNoTG9hZEZvckZy
YW1lOworICAgIGxvYWRlckNsaWVudC5kaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lID0gZGlk
RmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZTsKIAogICAgIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGll
bnQocGFnZVJlZiwgJmxvYWRlckNsaWVudCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL21hYy9XS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLQnJvd3NpbmdDb250ZXh0TG9h
ZERlbGVnYXRlLmgJKHJldmlzaW9uIDk4MzgxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGUuaAkod29ya2luZyBjb3B5KQpA
QCAtMzQsMTAgKzM0LDE5IEBACiAvKiBTZW50IHdoZW4gdGhlIHByb3Zpc2lvbmFsIGxvYWQgYmVn
aW5zLiAqLwogLSAodm9pZClicm93c2luZ0NvbnRleHRDb250cm9sbGVyRGlkU3RhcnRQcm92aXNp
b25hbExvYWQ6KFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqKXNlbmRlcjsKIAorLyogU2Vu
dCBpZiBhIHNlcnZlci1zaWRlIHJlZGlyZWN0IHdhcyByZWNpZXZlZC4gKi8KKy0gKHZvaWQpYnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlckRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTG9hZDooV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopc2VuZGVyOworCisvKiBTZW50
IGlmIHRoZSBwcm92aW9uYWwgbG9hZCBmYWlscy4gKi8KKy0gKHZvaWQpYnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlckRpZEZhaWxQcm92aXNpb25hbExvYWQ6KFdLQnJvd3NpbmdDb250ZXh0Q29udHJv
bGxlciAqKXNlbmRlciB3aXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcjsKKwogLyogU2VudCB3aGVu
IHRoZSBsb2FkIGdldHMgY29tbWl0dGVkLiAqLwogLSAodm9pZClicm93c2luZ0NvbnRleHRDb250
cm9sbGVyRGlkQ29tbWl0TG9hZDooV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopc2VuZGVy
OwogCiAvKiBTZW50IHdoZW4gdGhlIGxvYWQgY29tcGxldGVzLiAqLwogLSAodm9pZClicm93c2lu
Z0NvbnRleHRDb250cm9sbGVyRGlkRmluaXNoTG9hZDooV0tCcm93c2luZ0NvbnRleHRDb250cm9s
bGVyICopc2VuZGVyOwogCisvKiBTZW50IGlmIHRoZSBjb21taXRlZCBsb2FkIGZhaWxzLiAqLwor
LSAodm9pZClicm93c2luZ0NvbnRleHRDb250cm9sbGVyRGlkRmFpbExvYWQ6KFdLQnJvd3NpbmdD
b250ZXh0Q29udHJvbGxlciAqKXNlbmRlciB3aXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcjsKKwog
QGVuZAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112415</attachid>
            <date>2011-10-25 15:29:53 -0700</date>
            <delta_ts>2011-10-25 15:32:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70846-20111025152952.patch</filename>
            <type>text/plain</type>
            <size>18228</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDk4Mzg5KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMTAtMjUgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBGbGVzaCBvdXQgV0tCcm93c2luZ0NvbnRl
eHRMb2FkRGVsZWdhdGUgYSBiaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcwODQ2CisKKyAgICAgICAgQWRkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZCwgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZAorICAgICAgICBhbmQg
ZGlkRmFpbExvYWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdDogV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVUZXN0CisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL21hYy9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW06CisgICAg
ICAgIChkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6
CisgICAgICAgIChkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUpOgorICAg
ICAgICAoZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZSk6CisgICAgICAgIChzZXRVcFBhZ2VM
b2FkZXJDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLQnJvd3NpbmdDb250
ZXh0TG9hZERlbGVnYXRlLmg6CisKIDIwMTEtMTAtMjUgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0
Lm9yZz4KIAogICAgICAgICBNYWtlIGxvYWRGaWxlVVJMOnJlc3RyaWN0VG9GaWxlc1dpdGhpbjog
d29yaywgYWxiZWl0LCB3aXRob3V0IHRoZSBjb3JyZWN0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tCcm93c2luZ0NvbnRleHRD
b250cm9sbGVyLm1tCShyZXZpc2lvbiA5ODM4NikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQkod29ya2luZyBjb3B5KQpA
QCAtMjcsNiArMjcsNyBAQAogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLmgi
CiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJbnRlcm5hbC5oIgogCisjaW1w
b3J0ICJXS0Vycm9yQ0YuaCIKICNpbXBvcnQgIldLRnJhbWUuaCIKICNpbXBvcnQgIldLUGFnZS5o
IgogI2ltcG9ydCAiV0tSZXRhaW5QdHIuaCIKQEAgLTM0LDYgKzM1LDcgQEAKICNpbXBvcnQgIldL
VVJMQ0YuaCIKICNpbXBvcnQgIldLVVJMUmVxdWVzdC5oIgogI2ltcG9ydCAiV0tVUkxSZXF1ZXN0
TlMuaCIKKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogI2ltcG9ydCAiV0tCcm93c2luZ0Nv
bnRleHRMb2FkRGVsZWdhdGUuaCIKIApAQCAtMjAzLDcgKzIwNSwzMCBAQCBzdGF0aWMgdm9pZCBk
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyCiAgICAgICAgIHJldHVybjsKIAogICAgIFdLQnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250ZXh0ID0gKFdLQnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlciAqKWNsaWVudEluZm87Ci0gICAgW2Jyb3dzaW5nQ29udGV4dC5sb2FkRGVs
ZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkOmJy
b3dzaW5nQ29udGV4dF07CisgICAgaWYgKFticm93c2luZ0NvbnRleHQubG9hZERlbGVnYXRlIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckRpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkOildKQorICAgICAgICBbYnJvd3NpbmdDb250ZXh0LmxvYWREZWxl
Z2F0ZSBicm93c2luZ0NvbnRleHRDb250cm9sbGVyRGlkU3RhcnRQcm92aXNpb25hbExvYWQ6YnJv
d3NpbmdDb250ZXh0XTsKK30KKworc3RhdGljIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0
Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJh
bWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBp
ZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCisgICAgICAgIHJldHVybjsKKworICAgIFdL
QnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250ZXh0ID0gKFdLQnJvd3NpbmdD
b250ZXh0Q29udHJvbGxlciAqKWNsaWVudEluZm87CisgICAgaWYgKFticm93c2luZ0NvbnRleHQu
bG9hZERlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlckRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZDopXSkK
KyAgICAgICAgW2Jyb3dzaW5nQ29udGV4dC5sb2FkRGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlckRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZDpicm93c2lu
Z0NvbnRleHRdOworfQorCitzdGF0aWMgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVy
cm9yRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyb3JSZWYg
ZXJyb3IsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAg
ICBpZiAoIVdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCisgICAgICAgIHJldHVybjsKKworICAg
IFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250ZXh0ID0gKFdLQnJvd3Np
bmdDb250ZXh0Q29udHJvbGxlciAqKWNsaWVudEluZm87CisgICAgaWYgKFticm93c2luZ0NvbnRl
eHQubG9hZERlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlckRpZEZhaWxQcm92aXNpb25hbExvYWQ6d2l0aEVycm9yOildKSB7CisgICAg
ICAgIFJldGFpblB0cjxDRkVycm9yUmVmPiBjZkVycm9yKEFkb3B0Q0YsIFdLRXJyb3JDb3B5Q0ZF
cnJvcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBlcnJvcikpOworICAgICAgICBbYnJvd3NpbmdDb250
ZXh0LmxvYWREZWxlZ2F0ZSBicm93c2luZ0NvbnRleHRDb250cm9sbGVyRGlkRmFpbFByb3Zpc2lv
bmFsTG9hZDpicm93c2luZ0NvbnRleHQgd2l0aEVycm9yOihOU0Vycm9yICopY2ZFcnJvci5nZXQo
KV07CisgICAgfQogfQogCiBzdGF0aWMgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUoV0tQYWdl
UmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKQEAgLTIxMiw3ICsyMzcsOCBAQCBzdGF0aWMgdm9pZCBkaWRDb21taXRM
b2FkRm9yRnJhbWUoV0tQYWdlCiAgICAgICAgIHJldHVybjsKIAogICAgIFdLQnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250ZXh0ID0gKFdLQnJvd3NpbmdDb250ZXh0Q29udHJv
bGxlciAqKWNsaWVudEluZm87Ci0gICAgW2Jyb3dzaW5nQ29udGV4dC5sb2FkRGVsZWdhdGUgYnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlckRpZENvbW1pdExvYWQ6YnJvd3NpbmdDb250ZXh0XTsKKyAg
ICBpZiAoW2Jyb3dzaW5nQ29udGV4dC5sb2FkRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3Rvcihicm93c2luZ0NvbnRleHRDb250cm9sbGVyRGlkQ29tbWl0TG9hZDopXSkKKyAgICAg
ICAgW2Jyb3dzaW5nQ29udGV4dC5sb2FkRGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
ckRpZENvbW1pdExvYWQ6YnJvd3NpbmdDb250ZXh0XTsKIH0KIAogc3RhdGljIHZvaWQgZGlkRmlu
aXNoTG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVS
ZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCkBAIC0yMjEsMTkgKzI0NywzNSBA
QCBzdGF0aWMgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV0tQYWdlCiAgICAgICAgIHJldHVy
bjsKIAogICAgIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250ZXh0ID0g
KFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqKWNsaWVudEluZm87Ci0gICAgW2Jyb3dzaW5n
Q29udGV4dC5sb2FkRGVsZWdhdGUgYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckRpZEZpbmlzaExv
YWQ6YnJvd3NpbmdDb250ZXh0XTsKKyAgICBpZiAoW2Jyb3dzaW5nQ29udGV4dC5sb2FkRGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihicm93c2luZ0NvbnRleHRDb250cm9sbGVy
RGlkRmluaXNoTG9hZDopXSkKKyAgICAgICAgW2Jyb3dzaW5nQ29udGV4dC5sb2FkRGVsZWdhdGUg
YnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckRpZEZpbmlzaExvYWQ6YnJvd3NpbmdDb250ZXh0XTsK
K30KKworc3RhdGljIHZvaWQgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZShXS1BhZ2VSZWYg
cGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tFcnJvclJlZiBlcnJvciwgV0tUeXBlUmVmIHVzZXJE
YXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIGlmICghV0tGcmFtZUlzTWFpbkZy
YW1lKGZyYW1lKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgV0tCcm93c2luZ0NvbnRleHRDb250
cm9sbGVyICpicm93c2luZ0NvbnRleHQgPSAoV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICop
Y2xpZW50SW5mbzsKKyAgICBpZiAoW2Jyb3dzaW5nQ29udGV4dC5sb2FkRGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihicm93c2luZ0NvbnRleHRDb250cm9sbGVyRGlkRmFpbExv
YWQ6d2l0aEVycm9yOildKSB7CisgICAgICAgIFJldGFpblB0cjxDRkVycm9yUmVmPiBjZkVycm9y
KEFkb3B0Q0YsIFdLRXJyb3JDb3B5Q0ZFcnJvcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBlcnJvcikp
OworICAgICAgICBbYnJvd3NpbmdDb250ZXh0LmxvYWREZWxlZ2F0ZSBicm93c2luZ0NvbnRleHRD
b250cm9sbGVyRGlkRmFpbExvYWQ6YnJvd3NpbmdDb250ZXh0IHdpdGhFcnJvcjooTlNFcnJvciAq
KWNmRXJyb3IuZ2V0KCldOworICAgIH0KIH0KIAogc3RhdGljIHZvaWQgc2V0VXBQYWdlTG9hZGVy
Q2xpZW50KFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250ZXh0LCBXS1Bh
Z2VSZWYgcGFnZVJlZikKIHsKICAgICBXS1BhZ2VMb2FkZXJDbGllbnQgbG9hZGVyQ2xpZW50Owog
ICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50LCAwLCBzaXplb2YobG9hZGVyQ2xpZW50KSk7Ci0gICAg
CisKICAgICBsb2FkZXJDbGllbnQudmVyc2lvbiA9IGtXS1BhZ2VMb2FkZXJDbGllbnRDdXJyZW50
VmVyc2lvbjsKICAgICBsb2FkZXJDbGllbnQuY2xpZW50SW5mbyA9IGJyb3dzaW5nQ29udGV4dDsK
ICAgICBsb2FkZXJDbGllbnQuZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSA9IGRpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU7CisgICAgbG9hZGVyQ2xpZW50LmRpZFJlY2VpdmVT
ZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lID0gZGlkUmVjZWl2ZVNlcnZl
clJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU7CisgICAgbG9hZGVyQ2xpZW50LmRp
ZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZSA9IGRpZEZhaWxQcm92aXNpb25h
bExvYWRXaXRoRXJyb3JGb3JGcmFtZTsKICAgICBsb2FkZXJDbGllbnQuZGlkQ29tbWl0TG9hZEZv
ckZyYW1lID0gZGlkQ29tbWl0TG9hZEZvckZyYW1lOwogICAgIGxvYWRlckNsaWVudC5kaWRGaW5p
c2hMb2FkRm9yRnJhbWUgPSBkaWRGaW5pc2hMb2FkRm9yRnJhbWU7CisgICAgbG9hZGVyQ2xpZW50
LmRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWUgPSBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZy
YW1lOwogCiAgICAgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudChwYWdlUmVmLCAmbG9hZGVyQ2xp
ZW50KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLQnJvd3Np
bmdDb250ZXh0TG9hZERlbGVnYXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9tYWMvV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGUuaAkocmV2aXNpb24g
OTgzODEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS0Jyb3dzaW5nQ29u
dGV4dExvYWREZWxlZ2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCwxMCArMzQsMTkgQEAKIC8q
IFNlbnQgd2hlbiB0aGUgcHJvdmlzaW9uYWwgbG9hZCBiZWdpbnMuICovCiAtICh2b2lkKWJyb3dz
aW5nQ29udGV4dENvbnRyb2xsZXJEaWRTdGFydFByb3Zpc2lvbmFsTG9hZDooV0tCcm93c2luZ0Nv
bnRleHRDb250cm9sbGVyICopc2VuZGVyOwogCisvKiBTZW50IGlmIGEgc2VydmVyLXNpZGUgcmVk
aXJlY3Qgd2FzIHJlY2lldmVkLiAqLworLSAodm9pZClicm93c2luZ0NvbnRleHRDb250cm9sbGVy
RGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkOihXS0Jyb3dzaW5nQ29u
dGV4dENvbnRyb2xsZXIgKilzZW5kZXI7CisKKy8qIFNlbnQgaWYgdGhlIHByb3Zpb25hbCBsb2Fk
IGZhaWxzLiAqLworLSAodm9pZClicm93c2luZ0NvbnRleHRDb250cm9sbGVyRGlkRmFpbFByb3Zp
c2lvbmFsTG9hZDooV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopc2VuZGVyIHdpdGhFcnJv
cjooTlNFcnJvciAqKWVycm9yOworCiAvKiBTZW50IHdoZW4gdGhlIGxvYWQgZ2V0cyBjb21taXR0
ZWQuICovCiAtICh2b2lkKWJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJEaWRDb21taXRMb2FkOihX
S0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKilzZW5kZXI7CiAKIC8qIFNlbnQgd2hlbiB0aGUg
bG9hZCBjb21wbGV0ZXMuICovCiAtICh2b2lkKWJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJEaWRG
aW5pc2hMb2FkOihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKilzZW5kZXI7CiAKKy8qIFNl
bnQgaWYgdGhlIGNvbW1pdGVkIGxvYWQgZmFpbHMuICovCistICh2b2lkKWJyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXJEaWRGYWlsTG9hZDooV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopc2Vu
ZGVyIHdpdGhFcnJvcjooTlNFcnJvciAqKWVycm9yOworCiBAZW5kCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA5
ODM4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtNjk1LDcgKzY5NSw3IEBACiAJCUJDQkFBQ0Y0MTQ1MjMyNEYw
MDUzRjgyRiAvKiBXS0Jyb3dzaW5nQ29udGV4dEdyb3VwLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0JBQUNFRTE0NTIzMjQzMDA1M0Y4MkYgLyogV0tC
cm93c2luZ0NvbnRleHRHcm91cC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1Ymxp
YywgKTsgfTsgfTsKIAkJQkNCQUFDRjUxNDUyMzI0RjAwNTNGODJGIC8qIFdLQnJvd3NpbmdDb250
ZXh0R3JvdXAubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQ0JBQUNFRjE0NTIzMjQ0MDA1M0Y4MkYgLyogV0tCcm93c2luZ0NvbnRleHRHcm91cC5tbSAq
LzsgfTsKIAkJQkNCQUFDRjYxNDUyMzI0RjAwNTNGODJGIC8qIFdLQnJvd3NpbmdDb250ZXh0R3Jv
dXBJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNCQUFDRjAxNDUyMzI0ODAwNTNGODJGIC8qIFdLQnJvd3NpbmdDb250ZXh0R3JvdXBJbnRl
cm5hbC5oICovOyB9OwotCQlCQ0JBQUQwQjE0NTYwQTQzMDA1M0Y4MkYgLyogV0tCcm93c2luZ0Nv
bnRleHRMb2FkRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDQkFBRDBBMTQ1NjBBNDMwMDUzRjgyRiAvKiBXS0Jyb3dzaW5nQ29udGV4dExv
YWREZWxlZ2F0ZS5oICovOyB9OworCQlCQ0JBQUQwQjE0NTYwQTQzMDA1M0Y4MkYgLyogV0tCcm93
c2luZ0NvbnRleHRMb2FkRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDQkFBRDBBMTQ1NjBBNDMwMDUzRjgyRiAvKiBXS0Jyb3dzaW5nQ29u
dGV4dExvYWREZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywg
KTsgfTsgfTsKIAkJQkNCQ0IwQ0IxMjE1RTMyMTAwREU1OUNBIC8qIEltbXV0YWJsZURpY3Rpb25h
cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQkNC
MENBMTIxNUUzMjEwMERFNTlDQSAvKiBJbW11dGFibGVEaWN0aW9uYXJ5LmggKi87IH07CiAJCUJD
QkNCMENEMTIxNUUzM0EwMERFNTlDQSAvKiBJbW11dGFibGVEaWN0aW9uYXJ5LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQkNCMENDMTIxNUUzM0Ew
MERFNTlDQSAvKiBJbW11dGFibGVEaWN0aW9uYXJ5LmNwcCAqLzsgfTsKIAkJQkNCRDM5MTQxMjVC
QjFBODAwRDJDMjlGIC8qIFdlYlBhZ2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0JEMzkxMjEyNUJCMUE4MDBE
MkMyOUYgLyogV2ViUGFnZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKSW5kZXg6IFRv
b2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDk4
Mzk4KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTEtMTAtMjUgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBGbGVz
aCBvdXQgV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGUgYSBiaXQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwODQ2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJPYmpDOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJPYmpDL1dLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlVGVzdC5tbTogQWRkZWQu
CisgICAgICAgIChXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVRlc3Q6OldLQnJvd3NpbmdD
b250ZXh0TG9hZERlbGVnYXRlVGVzdCk6CisgICAgICAgIChXS0Jyb3dzaW5nQ29udGV4dExvYWRE
ZWxlZ2F0ZVRlc3Q6OlNldFVwKToKKyAgICAgICAgKFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVn
YXRlVGVzdDo6VGVhckRvd24pOgorICAgICAgICAoLVtTaW1wbGVMb2FkRGVsZWdhdGUgYnJvd3Np
bmdDb250ZXh0Q29udHJvbGxlckRpZEZpbmlzaExvYWQ6XSk6CisgICAgICAgIChURVNUX0YpOgor
ICAgICAgICBBZGQgYmFzaWMgdGVzdGluZyBmb3IgV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdh
dGUuCisKIDIwMTEtMTAtMjUgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAK
ICAgICAgICAgbWFrZS1zY3JpcHQtdGVzdC13cmFwcGVycyBzaG91bGQgbm90IGxvb2sgb3V0c2lk
ZSBmYXN0L2pzCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gOTgzODEpCisr
KyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQAogCQlCQzI0NkQ5QzEzMkYxRkYw
MDBCNTZEN0MgLyogQ2FuSGFuZGxlUmVxdWVzdF9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyNDZEOTcxMzJGMUZFMTAwQjU2RDdDIC8q
IENhbkhhbmRsZVJlcXVlc3RfQnVuZGxlLmNwcCAqLzsgfTsKIAkJQkMyRDAwNDkxMkE5RkRGQTAw
RTczMkEzIC8qIFBhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyRDAwNDgx
MkE5RkRGQTAwRTczMkEzIC8qIFBhZ2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9y
RnJhbWUuY3BwICovOyB9OwogCQlCQzJEMDA2NDEyQUEwNENFMDBFNzMyQTMgLyogZmlsZS13aXRo
LWFuY2hvci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDMkQwMDRBMTJBOUZFQjMwMEU3MzJBMyAvKiBmaWxlLXdpdGgtYW5jaG9yLmh0
bWwgKi87IH07CisJCUJDM0M0QzcyMTQ1NzVCNkEwMDI1RkI2MiAvKiBXS0Jyb3dzaW5nQ29udGV4
dExvYWREZWxlZ2F0ZVRlc3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzNDNEM3MDE0NTc1QjZBMDAyNUZCNjIgLyogV0tCcm93c2luZ0NvbnRleHRM
b2FkRGVsZWdhdGVUZXN0Lm1tICovOyB9OwogCQlCQzU3NUE5MDEyNkU3NEQzMDA2RjBGMTIgLyog
Q29jb2EuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkNCOUU5RjAxMTIzNUJERTAwQTEzN0UwIC8qIENvY29hLmZyYW1ld29yayAqLzsg
fTsKIAkJQkM1NzVBOTExMjZFNzREMzAwNkYwRjEyIC8qIFdlYktpdDIuZnJhbWV3b3JrIGluIEZy
YW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNBNjFEQjQxMTcw
MEVGRDAwNDYwRDFFIC8qIFdlYktpdDIuZnJhbWV3b3JrICovOyB9OwogCQlCQzU3NUE5MjEyNkU3
NEQzMDA2RjBGMTIgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM5MDk2NEQxMjU1NjIwQzAwMDgzNzU2
IC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayAqLzsgfTsKQEAgLTE3OCw2ICsxNzksNyBAQAog
CQlCQzI0NkQ5ODEzMkYxRkUxMDBCNTZEN0MgLyogQ2FuSGFuZGxlUmVxdWVzdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYW5IYW5kbGVSZXF1ZXN0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMyRDAwNDgxMkE5RkRGQTAwRTczMkEzIC8qIFBh
Z2VMb2FkRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZUxvYWREaWRDaGFuZ2VMb2NhdGlvbldpdGhp
blBhZ2VGb3JGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMkQwMDRB
MTJBOUZFQjMwMEU3MzJBMyAvKiBmaWxlLXdpdGgtYW5jaG9yLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHRleHQuaHRtbDsgZmlsZUVuY29kaW5n
ID0gNDsgcGF0aCA9ICJmaWxlLXdpdGgtYW5jaG9yLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlCQzNDNEM3MDE0NTc1QjZBMDAyNUZCNjIgLyogV0tCcm93c2luZ0NvbnRleHRM
b2FkRGVsZWdhdGVUZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVUZXN0Lm1tOyBwYXRoID0gV2ViS2l0Mk9i
akMvV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGVUZXN0Lm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQzU3NTk0NjEyNkU3MzUxMDA2RjBGMTIgLyogSW5qZWN0ZWRCdW5kbGVN
YWluLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVu
ZGxlTWFpbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNTc1OTgwMTI2RTc0
QUYwMDZGMEYxMiAvKiBJbmplY3RlZEJ1bmRsZVRlc3RXZWJLaXRBUEkuYnVuZGxlICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmNmYnVuZGxl
OyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVRlc3RXZWJLaXRBUEku
YnVuZGxlOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQlCQzU3NTk4MTEy
NkU3NEFGMDA2RjBGMTIgLyogSW5qZWN0ZWRCdW5kbGUtSW5mby5wbGlzdCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1sOyBwYXRo
ID0gIkluamVjdGVkQnVuZGxlLUluZm8ucGxpc3QiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMzIwLDYgKzMyMiwxNCBAQAogCQkJbmFtZSA9IFByb2R1Y3RzOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJQkMzQzRDNkYxNDU3NUIxRDAwMjVGQjYyIC8qIFdlYktp
dDIgT2JqZWN0aXZlLUMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0g
KAorCQkJCUJDM0M0QzcwMTQ1NzVCNkEwMDI1RkI2MiAvKiBXS0Jyb3dzaW5nQ29udGV4dExvYWRE
ZWxlZ2F0ZVRlc3QubW0gKi8sCisJCQkpOworCQkJbmFtZSA9ICJXZWJLaXQyIE9iamVjdGl2ZS1D
IjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCUJDNTc1OTQ0MTI2RTczM0Mw
MDZGMEYxMiAvKiBJbmplY3RlZEJ1bmRsZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCkBAIC00NDQsNiArNDU0LDcgQEAKIAkJCQlDMDg1ODdGOTEzRkVDMzlCMDAx
RUY0RTUgLyogVGVzdFdlYktpdEFQSSAqLywKIAkJCQlDMDdFNkNBRDEzRkQ2NzY1MDAzOEIyMkIg
LyogbWFjICovLAogCQkJCUJDOTA5NjQxMTI1NTYxNjAwMDA4Mzc1NiAvKiBXZWJLaXQyICovLAor
CQkJCUJDM0M0QzZGMTQ1NzVCMUQwMDI1RkI2MiAvKiBXZWJLaXQyIE9iamVjdGl2ZS1DICovLAog
CQkJCUJDOTA5NjQ2MTI1NTYxODkwMDA4Mzc1NiAvKiBXVEYgKi8sCiAJCQkpOwogCQkJcGF0aCA9
IFRlc3RzOwpAQCAtNjI1LDYgKzYzNiw3IEBACiAJCQkJRjZGRERERDMxNDI0MUFENDAwNEYxNzI5
IC8qIFByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUMwOTkxQzUxMTQzQzdENjgwMDc5OThGMiAvKiBSZXRhaW5QdHJIYXNoaW5n
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUyQ0I0NzQxMTQ0OEZCOTMwMDg3Mzk5NSAvKiBMb2Fk
QWx0ZXJuYXRlSFRNTFN0cmluZ1dpdGhOb25EaXJlY3RvcnlVUkwuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQkMzQzRDNzIxNDU3NUI2QTAwMjVGQjYyIC8qIFdLQnJvd3NpbmdDb250ZXh0TG9hZERl
bGVnYXRlVGVzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyT2JqQy9XS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZVRlc3QubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyT2JqQy9XS0Jyb3dz
aW5nQ29udGV4dExvYWREZWxlZ2F0ZVRlc3QubW0JKHJldmlzaW9uIDApCisrKyBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJPYmpDL1dLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRl
VGVzdC5tbQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMDEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKworI2ltcG9ydCA8V2ViS2l0Mi9XS0Jy
b3dzaW5nQ29udGV4dENvbnRyb2xsZXIuaD4KKyNpbXBvcnQgPFdlYktpdDIvV0tCcm93c2luZ0Nv
bnRleHRHcm91cC5oPgorI2ltcG9ydCA8V2ViS2l0Mi9XS0Jyb3dzaW5nQ29udGV4dExvYWREZWxl
Z2F0ZS5oPgorI2ltcG9ydCA8V2ViS2l0Mi9XS1Byb2Nlc3NHcm91cC5oPgorI2ltcG9ydCA8V2Vi
S2l0Mi9XS1JldGFpblB0ci5oPgorI2ltcG9ydCA8V2ViS2l0Mi9XS1ZpZXcuaD4KKworI2ltcG9y
dCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKworY2xhc3MgV0tCcm93c2luZ0NvbnRleHRMb2FkRGVs
ZWdhdGVUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7IAorcHVibGljOgorICAgIFdLUHJv
Y2Vzc0dyb3VwICpwcm9jZXNzR3JvdXA7CisgICAgV0tCcm93c2luZ0NvbnRleHRHcm91cCAqYnJv
d3NpbmdDb250ZXh0R3JvdXA7CisgICAgV0tWaWV3ICp2aWV3OworCisgICAgV0tCcm93c2luZ0Nv
bnRleHRMb2FkRGVsZWdhdGVUZXN0KCkKKyAgICAgICAgOiBwcm9jZXNzR3JvdXAobmlsKQorICAg
ICAgICAsIGJyb3dzaW5nQ29udGV4dEdyb3VwKG5pbCkKKyAgICAgICAgLCB2aWV3KG5pbCkKKyAg
ICB7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkKKyAgICB7CisgICAgICAgIHBy
b2Nlc3NHcm91cCA9IFtbV0tQcm9jZXNzR3JvdXAgYWxsb2NdIGluaXRdOworICAgICAgICBicm93
c2luZ0NvbnRleHRHcm91cCA9IFtbV0tCcm93c2luZ0NvbnRleHRHcm91cCBhbGxvY10gaW5pdFdp
dGhJZGVudGlmaWVyOkAiVGVzdElkZW50aWZpZXIiXTsKKyAgICAgICAgdmlldyA9IFtbV0tWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIHByb2Nlc3NH
cm91cDpwcm9jZXNzR3JvdXAgYnJvd3NpbmdDb250ZXh0R3JvdXA6YnJvd3NpbmdDb250ZXh0R3Jv
dXBdOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpCisgICAgeworICAgICAg
ICBbdmlldyByZWxlYXNlXTsKKyAgICAgICAgW2Jyb3dzaW5nQ29udGV4dEdyb3VwIHJlbGVhc2Vd
OworICAgICAgICBbcHJvY2Vzc0dyb3VwIHJlbGVhc2VdOworICAgIH0KK307CisKK3N0YXRpYyBi
b29sIHNpbXBsZUxvYWREb25lOworCitAaW50ZXJmYWNlIFNpbXBsZUxvYWREZWxlZ2F0ZSA6IE5T
T2JqZWN0IDxXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZT4KK0BlbmQKKworQGltcGxlbWVu
dGF0aW9uIFNpbXBsZUxvYWREZWxlZ2F0ZQorCistICh2b2lkKWJyb3dzaW5nQ29udGV4dENvbnRy
b2xsZXJEaWRGaW5pc2hMb2FkOihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKilzZW5kZXIK
K3sKKyAgICBzaW1wbGVMb2FkRG9uZSA9IHRydWU7Cit9CisKK0BlbmQKKworVEVTVF9GKFdLQnJv
d3NpbmdDb250ZXh0TG9hZERlbGVnYXRlVGVzdCwgRW1wdHkpCit7CisgICAgLy8gSnVzdCBtYWtl
IHN1cmUgdGhlIHNldHVwL3RlYXIgZG93biB3b3Jrcy4KK30KKworVEVTVF9GKFdLQnJvd3NpbmdD
b250ZXh0TG9hZERlbGVnYXRlVGVzdCwgU2ltcGxlTG9hZCkKK3sKKyAgICAvLyBBZGQgbG9hZCBk
ZWxlZ2F0ZS4KKyAgICBTaW1wbGVMb2FkRGVsZWdhdGUgKnNpbXBsZUxvYWREZWxlZ2F0ZSA9IFtb
U2ltcGxlTG9hZERlbGVnYXRlIGFsbG9jXSBpbml0XTsKKyAgICB2aWV3LmJyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXIubG9hZERlbGVnYXRlID0gc2ltcGxlTG9hZERlbGVnYXRlOworCisgICAgLy8g
TG9hZCBmaWxlLgorICAgIE5TVVJMICpuc1VSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJzaW1wbGUiIHdpdGhFeHRlbnNpb246QCJodG1sIl07CisgICAgW3ZpZXcu
YnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBsb2FkRmlsZVVSTDpuc1VSTCByZXN0cmljdFRvRmls
ZXNXaXRoaW46bmlsXTsKKworICAgIC8vIFdhaXQgZm9yIGxvYWQuCisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZzaW1wbGVMb2FkRG9uZSk7CisKKyAgICAvLyBUZWFyIGRvd24gdGhlIGRl
bGVnYXRlLgorICAgIHZpZXcuYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5sb2FkRGVsZWdhdGUg
PSBuaWw7CisgICAgW3NpbXBsZUxvYWREZWxlZ2F0ZSByZWxlYXNlXTsKK30K
</data>
<flag name="review"
          id="110492"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>