<?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>138325</bug_id>
          
          <creation_ts>2014-11-03 13:26:44 -0800</creation_ts>
          <short_desc>Web Inspector: Fix RWIProtocol 64-to-32 bit conversion warnings</short_desc>
          <delta_ts>2014-11-03 15:02:26 -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>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>buildbot</cc>
    
    <cc>burg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>rniwa</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1045837</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-11-03 13:26:44 -0800</bug_when>
    <thetext>When building the ObjC Generated protocol files with warnings I see:

.../JavaScriptCore.framework/PrivateHeaders/InspectorValues.h:265:38: error: implicit conversion loses integer precision: &apos;size_t&apos; (aka &apos;unsigned long&apos;) to &apos;unsigned int&apos; [-Werror,-Wshorten-64-to-32]
.../DerivedSources/WebInspector/RWIProtocolBackendDispatchers.mm:397:58: error: implicit conversion loses integer precision: &apos;NSInteger&apos; (aka &apos;long&apos;) to &apos;int&apos; [-Werror,-Wshorten-64-to-32]
.../DerivedSources/WebInspector/RWIProtocolEventDispatchers.mm:109:62: error: implicit conversion loses integer precision: &apos;NSInteger&apos; (aka &apos;long&apos;) to &apos;int&apos; [-Werror,-Wshorten-64-to-32]
.../DerivedSources/WebInspector/RWIProtocolTypes.mm:70:23: error: implicit conversion loses integer precision: &apos;NSInteger&apos; (aka &apos;long&apos;) to &apos;int&apos; [-Werror,-Wshorten-64-to-32]

Instead of NSInteger for &quot;integer&quot; protocol types, we should just use &quot;int&quot; to match InspectorValue/InspectorObject&apos;s interface.
Note we can keep NS_ENUM(NSInteger) because those always get converted to/from WTF::Strings on the internal InspectorObject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045838</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-11-03 13:27:01 -0800</bug_when>
    <thetext>&lt;rdar://problem/18857253&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045840</commentid>
    <comment_count>2</comment_count>
      <attachid>240873</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-11-03 13:28:48 -0800</bug_when>
    <thetext>Created attachment 240873
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045841</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-11-03 13:29:57 -0800</bug_when>
    <thetext>Oops, I forgot to add script tests rebaselines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045842</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-03 13:30:31 -0800</bug_when>
    <thetext>This patch modifies the inspector protocol generator. Please ensure that you have rebaselined any generator test results (i.e., by running `Tools/Scripts/run-inspector-generator-tests --reset-results`)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045843</commentid>
    <comment_count>5</comment_count>
      <attachid>240874</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-11-03 13:30:57 -0800</bug_when>
    <thetext>Created attachment 240874
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045847</commentid>
    <comment_count>6</comment_count>
      <attachid>240874</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-11-03 13:45:52 -0800</bug_when>
    <thetext>Comment on attachment 240874
[PATCH] Proposed Fix

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

&gt; Source/JavaScriptCore/ChangeLog:14
&gt; +        Use int instead of NSInteger for APIs that eventually map to
&gt; +        InspectorObject&apos;s setInteger, which takes an int.

Feels like a step backwards. Can we fix InspectorObject&apos;s setInteger instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045858</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-11-03 14:23:13 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 240874 [details]
&gt; [PATCH] Proposed Fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=240874&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:14
&gt; &gt; +        Use int instead of NSInteger for APIs that eventually map to
&gt; &gt; +        InspectorObject&apos;s setInteger, which takes an int.
&gt; 
&gt; Feels like a step backwards. Can we fix InspectorObject&apos;s setInteger instead?

If we changed setInteger to support NSInteger it likely be size_t.

However, there is a potential real issue here. These &quot;int&quot; values get JSON serialized, and JavaScript Integers can not be a full 64bit integer:

&gt; JavaScript represents numbers using IEEE-754 double-precision (64 bit) format.
&gt; As I understand it this gives you 53 bits precision

The compromise that the JSC JSValue API went with was using an explicit int32_t for creating a JSValue with an integer value. We could move our Internal APIs to that type, but I think just using int for now is fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045870</commentid>
    <comment_count>8</comment_count>
      <attachid>240874</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-03 15:02:22 -0800</bug_when>
    <thetext>Comment on attachment 240874
[PATCH] Proposed Fix

Clearing flags on attachment: 240874

Committed r175493: &lt;http://trac.webkit.org/changeset/175493&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045871</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-03 15:02:26 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240873</attachid>
            <date>2014-11-03 13:28:48 -0800</date>
            <delta_ts>2014-11-03 13:30:57 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>no-nsinteger.patch</filename>
            <type>text/plain</type>
            <size>2242</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDNmOGY4YmYuLjYwMWJkZDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIwIEBACiAyMDE0LTExLTAzICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRml4IFJX
SVByb3RvY29sIDY0LXRvLTMyIGJpdCBjb252ZXJzaW9uIHdhcm5pbmdzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzgzMjUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JW
YWx1ZXMuaDoKKyAgICAgICAgVmVjdG9yJ3MgbGVuZ3RoIHJlYWxseSBpcyBhbiB1bnNpZ25lZCwg
c28gYSBzdGF0aWNfY2FzdCBoZXJlIGlzIGZpbmUuCisKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2Ny
aXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamVjdGl2ZV9jLnB5OgorICAgICAgICAoT2JqQ0dlbmVy
YXRvci5vYmpjX3R5cGVfZm9yX3Jhd19uYW1lKToKKyAgICAgICAgVXNlIGludCBpbnN0ZWFkIG9m
IE5TSW50ZWdlciBmb3IgQVBJcyB0aGF0IGV2ZW50dWFsbHkgbWFwIHRvCisgICAgICAgIEluc3Bl
Y3Rvck9iamVjdCdzIHNldEludGVnZXIsIHdoaWNoIHRha2VzIGFuIGludC4KKworMjAxNC0xMS0w
MyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IE9iakMgUHJvdG9jb2wgSW50ZXJmYWNlcyBzaG91bGQgdGhyb3cgZXhjZXB0aW9u
cyBmb3IgbmlsIGFyZ3VtZW50cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTM4MjIxCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclZhbHVlcy5oCmluZGV4IDk0MzVmYTUuLjI5NmFmN2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaApAQCAtMjYy
LDcgKzI2Miw3IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8SW5zcGVjdG9y
VmFsdWU+Pjo6aXRlcmF0b3IgaXRlcmF0b3I7CiAgICAgdHlwZWRlZiBWZWN0b3I8UmVmUHRyPElu
c3BlY3RvclZhbHVlPj46OmNvbnN0X2l0ZXJhdG9yIGNvbnN0X2l0ZXJhdG9yOwogCi0gICAgdW5z
aWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLnNpemUoKTsgfQorICAgIHVuc2ln
bmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX2RhdGEu
c2l6ZSgpKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+SW5zcGVjdG9yQXJyYXlCYXNl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
Y29kZWdlbi9nZW5lcmF0ZV9vYmplY3RpdmVfYy5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamVjdGl2ZV9jLnB5CmluZGV4IGNk
MjVjMTIuLjVjZDVlZWQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamVjdGl2ZV9jLnB5CisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamVjdGl2
ZV9jLnB5CkBAIC0xOTMsNyArMTkzLDcgQEAgY2xhc3MgT2JqQ0dlbmVyYXRvcjoKICAgICAgICAg
aWYgcmF3X25hbWUgaXMgJ2FycmF5JzoKICAgICAgICAgICAgIHJldHVybiAnTlNBcnJheSAqJwog
ICAgICAgICBpZiByYXdfbmFtZSBpcyAnaW50ZWdlcic6Ci0gICAgICAgICAgICByZXR1cm4gJ05T
SW50ZWdlcicKKyAgICAgICAgICAgIHJldHVybiAnaW50JwogICAgICAgICBpZiByYXdfbmFtZSBp
cyAnbnVtYmVyJzoKICAgICAgICAgICAgIHJldHVybiAnZG91YmxlJwogICAgICAgICBpZiByYXdf
bmFtZSBpcyAnYm9vbGVhbic6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240874</attachid>
            <date>2014-11-03 13:30:57 -0800</date>
            <delta_ts>2014-11-03 15:02:22 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>int-better.patch</filename>
            <type>text/plain</type>
            <size>30597</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDNmOGY4YmYuLjgyNDQwOTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI4IEBACiAyMDE0LTExLTAzICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRml4IFJX
SVByb3RvY29sIDY0LXRvLTMyIGJpdCBjb252ZXJzaW9uIHdhcm5pbmdzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzgzMjUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JW
YWx1ZXMuaDoKKyAgICAgICAgVmVjdG9yJ3MgbGVuZ3RoIHJlYWxseSBpcyBhbiB1bnNpZ25lZCwg
c28gYSBzdGF0aWNfY2FzdCBoZXJlIGlzIGZpbmUuCisKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2Ny
aXB0cy9jb2RlZ2VuL2dlbmVyYXRlX29iamVjdGl2ZV9jLnB5OgorICAgICAgICAoT2JqQ0dlbmVy
YXRvci5vYmpjX3R5cGVfZm9yX3Jhd19uYW1lKToKKyAgICAgICAgVXNlIGludCBpbnN0ZWFkIG9m
IE5TSW50ZWdlciBmb3IgQVBJcyB0aGF0IGV2ZW50dWFsbHkgbWFwIHRvCisgICAgICAgIEluc3Bl
Y3Rvck9iamVjdCdzIHNldEludGVnZXIsIHdoaWNoIHRha2VzIGFuIGludC4KKworICAgICAgICAq
IGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2NvbW1hbmRzLXdpdGgtYXN5bmMtYXR0
cmlidXRlLmpzb24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4
cGVjdGVkL2NvbW1hbmRzLXdpdGgtb3B0aW9uYWwtY2FsbC1yZXR1cm4tcGFyYW1ldGVycy5qc29u
LXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9ldmVu
dHMtd2l0aC1vcHRpb25hbC1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0OgorICAgICAgICAqIGluc3Bl
Y3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRlLWRvbWFpbnMtd2l0aC1mZWF0dXJl
LWd1YXJkcy5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9l
eHBlY3RlZC90eXBlLWRlY2xhcmF0aW9uLW9iamVjdC10eXBlLmpzb24tcmVzdWx0OgorICAgICAg
ICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL3R5cGUtcmVxdWlyaW5nLXJ1bnRp
bWUtY2FzdHMuanNvbi1yZXN1bHQ6CisgICAgICAgIFJlYmFzZWxpbmVkIHJlc3VsdHMgd2l0aCB0
aGUgdHlwZSBjaGFuZ2UuCisKKzIwMTQtMTEtMDMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJv
QGFwcGxlLmNvbT4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBPYmpDIFByb3RvY29sIEludGVy
ZmFjZXMgc2hvdWxkIHRocm93IGV4Y2VwdGlvbnMgZm9yIG5pbCBhcmd1bWVudHMKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODIyMQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvclZhbHVlcy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaAppbmRleCA5
NDM1ZmE1Li4yOTZhZjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclZhbHVlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yVmFsdWVzLmgKQEAgLTI2Miw3ICsyNjIsNyBAQCBwdWJsaWM6CiAgICAgdHlw
ZWRlZiBWZWN0b3I8UmVmUHRyPEluc3BlY3RvclZhbHVlPj46Oml0ZXJhdG9yIGl0ZXJhdG9yOwog
ICAgIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4+Ojpjb25zdF9pdGVyYXRv
ciBjb25zdF9pdGVyYXRvcjsKIAotICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJu
IG1fZGF0YS5zaXplKCk7IH0KKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4obV9kYXRhLnNpemUoKSk7IH0KIAogcHJvdGVjdGVkOgogICAg
IHZpcnR1YWwgfkluc3BlY3RvckFycmF5QmFzZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVfb2JqZWN0aXZlX2Mu
cHkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5l
cmF0ZV9vYmplY3RpdmVfYy5weQppbmRleCBjZDI1YzEyLi41Y2Q1ZWVkIDEwMDc1NQotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9v
YmplY3RpdmVfYy5weQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Njcmlw
dHMvY29kZWdlbi9nZW5lcmF0ZV9vYmplY3RpdmVfYy5weQpAQCAtMTkzLDcgKzE5Myw3IEBAIGNs
YXNzIE9iakNHZW5lcmF0b3I6CiAgICAgICAgIGlmIHJhd19uYW1lIGlzICdhcnJheSc6CiAgICAg
ICAgICAgICByZXR1cm4gJ05TQXJyYXkgKicKICAgICAgICAgaWYgcmF3X25hbWUgaXMgJ2ludGVn
ZXInOgotICAgICAgICAgICAgcmV0dXJuICdOU0ludGVnZXInCisgICAgICAgICAgICByZXR1cm4g
J2ludCcKICAgICAgICAgaWYgcmF3X25hbWUgaXMgJ251bWJlcic6CiAgICAgICAgICAgICByZXR1
cm4gJ2RvdWJsZScKICAgICAgICAgaWYgcmF3X25hbWUgaXMgJ2Jvb2xlYW4nOgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVk
L2NvbW1hbmRzLXdpdGgtYXN5bmMtYXR0cmlidXRlLmpzb24tcmVzdWx0IGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2NvbW1hbmRzLXdpdGgt
YXN5bmMtYXR0cmlidXRlLmpzb24tcmVzdWx0CmluZGV4IDgyYTdjOWUuLjljMDdiYzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBl
Y3RlZC9jb21tYW5kcy13aXRoLWFzeW5jLWF0dHJpYnV0ZS5qc29uLXJlc3VsdAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvY29tbWFu
ZHMtd2l0aC1hc3luYy1hdHRyaWJ1dGUuanNvbi1yZXN1bHQKQEAgLTEwNjMsNyArMTA2Myw3IEBA
IHZvaWQgT2JqQ0luc3BlY3RvckRhdGFiYXNlQmFja2VuZERpc3BhdGNoZXI6OmV4ZWN1dGVTUUxT
eW5jT3B0aW9uYWxSZXR1cm5WYWx1ZXMoCiAgICAgICAgIGJhY2tlbmREaXNwYXRjaGVyKCktPnNl
bmRSZXNwb25zZShjYWxsSWQsIEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCksIGVycm9yKTsKICAg
ICB9OwogCi0gICAgaWQgc3VjY2Vzc0NhbGxiYWNrID0gXihOU0FycmF5Lyo8TlNTdHJpbmc+Ki8g
Kipjb2x1bW5OYW1lcywgTlNTdHJpbmcgKipub3RlcywgZG91YmxlICp0aW1lc3RhbXAsIFJXSVBy
b3RvY29sSlNPTk9iamVjdCAqKnZhbHVlcywgUldJUHJvdG9jb2xKU09OT2JqZWN0ICoqcGF5bG9h
ZCwgTlNJbnRlZ2VyICpkYXRhYmFzZUlkLCBSV0lQcm90b2NvbERhdGFiYXNlRXJyb3IgKipzcWxF
cnJvciwgUldJUHJvdG9jb2xEYXRhYmFzZVByaW1hcnlDb2xvcnMgKnNjcmVlbkNvbG9yLCBSV0lQ
cm90b2NvbERhdGFiYXNlRXhlY3V0ZVNRTFN5bmNPcHRpb25hbFJldHVyblZhbHVlc1ByaW50Q29s
b3IgKnByaW50Q29sb3IpIHsKKyAgICBpZCBzdWNjZXNzQ2FsbGJhY2sgPSBeKE5TQXJyYXkvKjxO
U1N0cmluZz4qLyAqKmNvbHVtbk5hbWVzLCBOU1N0cmluZyAqKm5vdGVzLCBkb3VibGUgKnRpbWVz
dGFtcCwgUldJUHJvdG9jb2xKU09OT2JqZWN0ICoqdmFsdWVzLCBSV0lQcm90b2NvbEpTT05PYmpl
Y3QgKipwYXlsb2FkLCBpbnQgKmRhdGFiYXNlSWQsIFJXSVByb3RvY29sRGF0YWJhc2VFcnJvciAq
KnNxbEVycm9yLCBSV0lQcm90b2NvbERhdGFiYXNlUHJpbWFyeUNvbG9ycyAqc2NyZWVuQ29sb3Is
IFJXSVByb3RvY29sRGF0YWJhc2VFeGVjdXRlU1FMU3luY09wdGlvbmFsUmV0dXJuVmFsdWVzUHJp
bnRDb2xvciAqcHJpbnRDb2xvcikgewogICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBy
ZXN1bHRPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwogICAgICAgICBUSFJPV19F
WENFUFRJT05fRk9SX0JBRF9PUFRJT05BTF9QQVJBTUVURVIoY29sdW1uTmFtZXMsIEAiY29sdW1u
TmFtZXMiKTsKICAgICAgICAgVEhST1dfRVhDRVBUSU9OX0ZPUl9CQURfT1BUSU9OQUxfUEFSQU1F
VEVSKG5vdGVzLCBAIm5vdGVzIik7CkBAIC0xMDkxLDcgKzEwOTEsNyBAQCB2b2lkIE9iakNJbnNw
ZWN0b3JEYXRhYmFzZUJhY2tlbmREaXNwYXRjaGVyOjpleGVjdXRlU1FMU3luY09wdGlvbmFsUmV0
dXJuVmFsdWVzKAogICAgICAgICBiYWNrZW5kRGlzcGF0Y2hlcigpLT5zZW5kUmVzcG9uc2UoY2Fs
bElkLCByZXN1bHRPYmplY3QucmVsZWFzZSgpLCBTdHJpbmcoKSk7CiAgICAgfTsKIAotICAgIE5T
SW50ZWdlciBvX2luX2RhdGFiYXNlSWQgPSBpbl9kYXRhYmFzZUlkOworICAgIGludCBvX2luX2Rh
dGFiYXNlSWQgPSBpbl9kYXRhYmFzZUlkOwogICAgIE5TU3RyaW5nICpvX2luX3F1ZXJ5ID0gaW5f
cXVlcnk7CiAKICAgICBbbV9kZWxlZ2F0ZSBleGVjdXRlU1FMU3luY09wdGlvbmFsUmV0dXJuVmFs
dWVzV2l0aEVycm9yQ2FsbGJhY2s6ZXJyb3JDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2s6c3VjY2Vz
c0NhbGxiYWNrIGRhdGFiYXNlSWQ6b19pbl9kYXRhYmFzZUlkIHF1ZXJ5Om9faW5fcXVlcnldOwpA
QCAtMTEwMyw3ICsxMTAzLDcgQEAgdm9pZCBPYmpDSW5zcGVjdG9yRGF0YWJhc2VCYWNrZW5kRGlz
cGF0Y2hlcjo6ZXhlY3V0ZVNRTEFzeW5jT3B0aW9uYWxSZXR1cm5WYWx1ZXMKICAgICAgICAgYmFj
a2VuZERpc3BhdGNoZXIoKS0+c2VuZFJlc3BvbnNlKGNhbGxJZCwgSW5zcGVjdG9yT2JqZWN0Ojpj
cmVhdGUoKSwgZXJyb3IpOwogICAgIH07CiAKLSAgICBpZCBzdWNjZXNzQ2FsbGJhY2sgPSBeKE5T
QXJyYXkvKjxOU1N0cmluZz4qLyAqKmNvbHVtbk5hbWVzLCBOU1N0cmluZyAqKm5vdGVzLCBkb3Vi
bGUgKnRpbWVzdGFtcCwgUldJUHJvdG9jb2xKU09OT2JqZWN0ICoqdmFsdWVzLCBSV0lQcm90b2Nv
bEpTT05PYmplY3QgKipwYXlsb2FkLCBOU0ludGVnZXIgKmRhdGFiYXNlSWQsIFJXSVByb3RvY29s
RGF0YWJhc2VFcnJvciAqKnNxbEVycm9yLCBSV0lQcm90b2NvbERhdGFiYXNlUHJpbWFyeUNvbG9y
cyAqc2NyZWVuQ29sb3IsIFJXSVByb3RvY29sRGF0YWJhc2VFeGVjdXRlU1FMQXN5bmNPcHRpb25h
bFJldHVyblZhbHVlc1ByaW50Q29sb3IgKnByaW50Q29sb3IpIHsKKyAgICBpZCBzdWNjZXNzQ2Fs
bGJhY2sgPSBeKE5TQXJyYXkvKjxOU1N0cmluZz4qLyAqKmNvbHVtbk5hbWVzLCBOU1N0cmluZyAq
Km5vdGVzLCBkb3VibGUgKnRpbWVzdGFtcCwgUldJUHJvdG9jb2xKU09OT2JqZWN0ICoqdmFsdWVz
LCBSV0lQcm90b2NvbEpTT05PYmplY3QgKipwYXlsb2FkLCBpbnQgKmRhdGFiYXNlSWQsIFJXSVBy
b3RvY29sRGF0YWJhc2VFcnJvciAqKnNxbEVycm9yLCBSV0lQcm90b2NvbERhdGFiYXNlUHJpbWFy
eUNvbG9ycyAqc2NyZWVuQ29sb3IsIFJXSVByb3RvY29sRGF0YWJhc2VFeGVjdXRlU1FMQXN5bmNP
cHRpb25hbFJldHVyblZhbHVlc1ByaW50Q29sb3IgKnByaW50Q29sb3IpIHsKICAgICAgICAgUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gcmVzdWx0T2JqZWN0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVh
dGUoKTsKICAgICAgICAgVEhST1dfRVhDRVBUSU9OX0ZPUl9CQURfT1BUSU9OQUxfUEFSQU1FVEVS
KGNvbHVtbk5hbWVzLCBAImNvbHVtbk5hbWVzIik7CiAgICAgICAgIFRIUk9XX0VYQ0VQVElPTl9G
T1JfQkFEX09QVElPTkFMX1BBUkFNRVRFUihub3RlcywgQCJub3RlcyIpOwpAQCAtMTEzMSw3ICsx
MTMxLDcgQEAgdm9pZCBPYmpDSW5zcGVjdG9yRGF0YWJhc2VCYWNrZW5kRGlzcGF0Y2hlcjo6ZXhl
Y3V0ZVNRTEFzeW5jT3B0aW9uYWxSZXR1cm5WYWx1ZXMKICAgICAgICAgYmFja2VuZERpc3BhdGNo
ZXIoKS0+c2VuZFJlc3BvbnNlKGNhbGxJZCwgcmVzdWx0T2JqZWN0LnJlbGVhc2UoKSwgU3RyaW5n
KCkpOwogICAgIH07CiAKLSAgICBOU0ludGVnZXIgb19pbl9kYXRhYmFzZUlkID0gaW5fZGF0YWJh
c2VJZDsKKyAgICBpbnQgb19pbl9kYXRhYmFzZUlkID0gaW5fZGF0YWJhc2VJZDsKICAgICBOU1N0
cmluZyAqb19pbl9xdWVyeSA9IGluX3F1ZXJ5OwogCiAgICAgW21fZGVsZWdhdGUgZXhlY3V0ZVNR
TEFzeW5jT3B0aW9uYWxSZXR1cm5WYWx1ZXNXaXRoRXJyb3JDYWxsYmFjazplcnJvckNhbGxiYWNr
IHN1Y2Nlc3NDYWxsYmFjazpzdWNjZXNzQ2FsbGJhY2sgZGF0YWJhc2VJZDpvX2luX2RhdGFiYXNl
SWQgcXVlcnk6b19pbl9xdWVyeV07CkBAIC0xMTQzLDcgKzExNDMsNyBAQCB2b2lkIE9iakNJbnNw
ZWN0b3JEYXRhYmFzZUJhY2tlbmREaXNwYXRjaGVyOjpleGVjdXRlU1FMU3luYyhsb25nIGNhbGxJ
ZCwgaW50IGluXwogICAgICAgICBiYWNrZW5kRGlzcGF0Y2hlcigpLT5zZW5kUmVzcG9uc2UoY2Fs
bElkLCBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBlcnJvcik7CiAgICAgfTsKIAotICAgIGlk
IHN1Y2Nlc3NDYWxsYmFjayA9IF4oTlNBcnJheS8qPE5TU3RyaW5nPiovICpjb2x1bW5OYW1lcywg
TlNTdHJpbmcgKm5vdGVzLCBkb3VibGUgdGltZXN0YW1wLCBSV0lQcm90b2NvbEpTT05PYmplY3Qg
KnZhbHVlcywgUldJUHJvdG9jb2xKU09OT2JqZWN0ICpwYXlsb2FkLCBOU0ludGVnZXIgZGF0YWJh
c2VJZCwgUldJUHJvdG9jb2xEYXRhYmFzZUVycm9yICpzcWxFcnJvciwgUldJUHJvdG9jb2xEYXRh
YmFzZVByaW1hcnlDb2xvcnMgc2NyZWVuQ29sb3IsIFJXSVByb3RvY29sRGF0YWJhc2VFeGVjdXRl
U1FMU3luY1ByaW50Q29sb3IgcHJpbnRDb2xvcikgeworICAgIGlkIHN1Y2Nlc3NDYWxsYmFjayA9
IF4oTlNBcnJheS8qPE5TU3RyaW5nPiovICpjb2x1bW5OYW1lcywgTlNTdHJpbmcgKm5vdGVzLCBk
b3VibGUgdGltZXN0YW1wLCBSV0lQcm90b2NvbEpTT05PYmplY3QgKnZhbHVlcywgUldJUHJvdG9j
b2xKU09OT2JqZWN0ICpwYXlsb2FkLCBpbnQgZGF0YWJhc2VJZCwgUldJUHJvdG9jb2xEYXRhYmFz
ZUVycm9yICpzcWxFcnJvciwgUldJUHJvdG9jb2xEYXRhYmFzZVByaW1hcnlDb2xvcnMgc2NyZWVu
Q29sb3IsIFJXSVByb3RvY29sRGF0YWJhc2VFeGVjdXRlU1FMU3luY1ByaW50Q29sb3IgcHJpbnRD
b2xvcikgewogICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZXN1bHRPYmplY3QgPSBJ
bnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwogICAgICAgICBUSFJPV19FWENFUFRJT05fRk9SX1JF
UVVJUkVEX1BBUkFNRVRFUihjb2x1bW5OYW1lcywgQCJjb2x1bW5OYW1lcyIpOwogICAgICAgICBU
SFJPV19FWENFUFRJT05fRk9SX1JFUVVJUkVEX1BBUkFNRVRFUihub3RlcywgQCJub3RlcyIpOwpA
QCAtMTE2Miw3ICsxMTYyLDcgQEAgdm9pZCBPYmpDSW5zcGVjdG9yRGF0YWJhc2VCYWNrZW5kRGlz
cGF0Y2hlcjo6ZXhlY3V0ZVNRTFN5bmMobG9uZyBjYWxsSWQsIGludCBpbl8KICAgICAgICAgYmFj
a2VuZERpc3BhdGNoZXIoKS0+c2VuZFJlc3BvbnNlKGNhbGxJZCwgcmVzdWx0T2JqZWN0LnJlbGVh
c2UoKSwgU3RyaW5nKCkpOwogICAgIH07CiAKLSAgICBOU0ludGVnZXIgb19pbl9kYXRhYmFzZUlk
ID0gaW5fZGF0YWJhc2VJZDsKKyAgICBpbnQgb19pbl9kYXRhYmFzZUlkID0gaW5fZGF0YWJhc2VJ
ZDsKICAgICBOU1N0cmluZyAqb19pbl9xdWVyeSA9IGluX3F1ZXJ5OwogCiAgICAgW21fZGVsZWdh
dGUgZXhlY3V0ZVNRTFN5bmNXaXRoRXJyb3JDYWxsYmFjazplcnJvckNhbGxiYWNrIHN1Y2Nlc3ND
YWxsYmFjazpzdWNjZXNzQ2FsbGJhY2sgZGF0YWJhc2VJZDpvX2luX2RhdGFiYXNlSWQgcXVlcnk6
b19pbl9xdWVyeV07CkBAIC0xMTc0LDcgKzExNzQsNyBAQCB2b2lkIE9iakNJbnNwZWN0b3JEYXRh
YmFzZUJhY2tlbmREaXNwYXRjaGVyOjpleGVjdXRlU1FMQXN5bmMobG9uZyBjYWxsSWQsIGludCBp
bgogICAgICAgICBiYWNrZW5kRGlzcGF0Y2hlcigpLT5zZW5kUmVzcG9uc2UoY2FsbElkLCBJbnNw
ZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBlcnJvcik7CiAgICAgfTsKIAotICAgIGlkIHN1Y2Nlc3ND
YWxsYmFjayA9IF4oTlNBcnJheS8qPE5TU3RyaW5nPiovICpjb2x1bW5OYW1lcywgTlNTdHJpbmcg
Km5vdGVzLCBkb3VibGUgdGltZXN0YW1wLCBSV0lQcm90b2NvbEpTT05PYmplY3QgKnZhbHVlcywg
UldJUHJvdG9jb2xKU09OT2JqZWN0ICpwYXlsb2FkLCBOU0ludGVnZXIgZGF0YWJhc2VJZCwgUldJ
UHJvdG9jb2xEYXRhYmFzZUVycm9yICpzcWxFcnJvciwgUldJUHJvdG9jb2xEYXRhYmFzZVByaW1h
cnlDb2xvcnMgc2NyZWVuQ29sb3IsIFJXSVByb3RvY29sRGF0YWJhc2VFeGVjdXRlU1FMQXN5bmNQ
cmludENvbG9yIHByaW50Q29sb3IpIHsKKyAgICBpZCBzdWNjZXNzQ2FsbGJhY2sgPSBeKE5TQXJy
YXkvKjxOU1N0cmluZz4qLyAqY29sdW1uTmFtZXMsIE5TU3RyaW5nICpub3RlcywgZG91YmxlIHRp
bWVzdGFtcCwgUldJUHJvdG9jb2xKU09OT2JqZWN0ICp2YWx1ZXMsIFJXSVByb3RvY29sSlNPTk9i
amVjdCAqcGF5bG9hZCwgaW50IGRhdGFiYXNlSWQsIFJXSVByb3RvY29sRGF0YWJhc2VFcnJvciAq
c3FsRXJyb3IsIFJXSVByb3RvY29sRGF0YWJhc2VQcmltYXJ5Q29sb3JzIHNjcmVlbkNvbG9yLCBS
V0lQcm90b2NvbERhdGFiYXNlRXhlY3V0ZVNRTEFzeW5jUHJpbnRDb2xvciBwcmludENvbG9yKSB7
CiAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlc3VsdE9iamVjdCA9IEluc3BlY3Rv
ck9iamVjdDo6Y3JlYXRlKCk7CiAgICAgICAgIFRIUk9XX0VYQ0VQVElPTl9GT1JfUkVRVUlSRURf
UEFSQU1FVEVSKGNvbHVtbk5hbWVzLCBAImNvbHVtbk5hbWVzIik7CiAgICAgICAgIFRIUk9XX0VY
Q0VQVElPTl9GT1JfUkVRVUlSRURfUEFSQU1FVEVSKG5vdGVzLCBAIm5vdGVzIik7CkBAIC0xMTkz
LDcgKzExOTMsNyBAQCB2b2lkIE9iakNJbnNwZWN0b3JEYXRhYmFzZUJhY2tlbmREaXNwYXRjaGVy
OjpleGVjdXRlU1FMQXN5bmMobG9uZyBjYWxsSWQsIGludCBpbgogICAgICAgICBiYWNrZW5kRGlz
cGF0Y2hlcigpLT5zZW5kUmVzcG9uc2UoY2FsbElkLCByZXN1bHRPYmplY3QucmVsZWFzZSgpLCBT
dHJpbmcoKSk7CiAgICAgfTsKIAotICAgIE5TSW50ZWdlciBvX2luX2RhdGFiYXNlSWQgPSBpbl9k
YXRhYmFzZUlkOworICAgIGludCBvX2luX2RhdGFiYXNlSWQgPSBpbl9kYXRhYmFzZUlkOwogICAg
IE5TU3RyaW5nICpvX2luX3F1ZXJ5ID0gaW5fcXVlcnk7CiAKICAgICBbbV9kZWxlZ2F0ZSBleGVj
dXRlU1FMQXN5bmNXaXRoRXJyb3JDYWxsYmFjazplcnJvckNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFj
azpzdWNjZXNzQ2FsbGJhY2sgZGF0YWJhc2VJZDpvX2luX2RhdGFiYXNlSWQgcXVlcnk6b19pbl9x
dWVyeV07CkBAIC0xNTA4LDE3ICsxNTA4LDE3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIs
IFJXSVByb3RvY29sRGF0YWJhc2VFeGVjdXRlU1FMQXN5bmNQcmludENvbG9yKSB7CiAKIAogQGlu
dGVyZmFjZSBSV0lQcm90b2NvbERhdGFiYXNlRXJyb3IgOiBSV0lQcm90b2NvbEpTT05PYmplY3QK
LS0gKGluc3RhbmNldHlwZSlpbml0V2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBjb2Rl
OihOU0ludGVnZXIpY29kZTsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aE1lc3NhZ2U6KE5TU3Ry
aW5nICopbWVzc2FnZSBjb2RlOihpbnQpY29kZTsKIC8qIHJlcXVpcmVkICovIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqbWVzc2FnZTsKLS8qIHJlcXVpcmVkICovIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIE5TSW50ZWdlciBjb2RlOworLyogcmVxdWlyZWQgKi8g
QHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgaW50IGNvZGU7CiBAZW5kCiAKIEBwcm90b2Nv
bCBSV0lQcm90b2NvbERhdGFiYXNlRG9tYWluSGFuZGxlciA8TlNPYmplY3Q+CiBAcmVxdWlyZWQK
LS0gKHZvaWQpZXhlY3V0ZVNRTFN5bmNPcHRpb25hbFJldHVyblZhbHVlc1dpdGhFcnJvckNhbGxi
YWNrOih2b2lkKF4pKE5TU3RyaW5nICplcnJvcikpZXJyb3JDYWxsYmFjayBzdWNjZXNzQ2FsbGJh
Y2s6KHZvaWQoXikoTlNBcnJheS8qPE5TU3RyaW5nPiovICoqY29sdW1uTmFtZXMsIE5TU3RyaW5n
ICoqbm90ZXMsIGRvdWJsZSAqdGltZXN0YW1wLCBSV0lQcm90b2NvbEpTT05PYmplY3QgKip2YWx1
ZXMsIFJXSVByb3RvY29sSlNPTk9iamVjdCAqKnBheWxvYWQsIE5TSW50ZWdlciAqZGF0YWJhc2VJ
ZCwgUldJUHJvdG9jb2xEYXRhYmFzZUVycm9yICoqc3FsRXJyb3IsIFJXSVByb3RvY29sRGF0YWJh
c2VQcmltYXJ5Q29sb3JzICpzY3JlZW5Db2xvciwgUldJUHJvdG9jb2xEYXRhYmFzZUV4ZWN1dGVT
UUxTeW5jT3B0aW9uYWxSZXR1cm5WYWx1ZXNQcmludENvbG9yICpwcmludENvbG9yKSlzdWNjZXNz
Q2FsbGJhY2sgZGF0YWJhc2VJZDooTlNJbnRlZ2VyKWRhdGFiYXNlSWQgcXVlcnk6KE5TU3RyaW5n
ICopcXVlcnk7Ci0tICh2b2lkKWV4ZWN1dGVTUUxBc3luY09wdGlvbmFsUmV0dXJuVmFsdWVzV2l0
aEVycm9yQ2FsbGJhY2s6KHZvaWQoXikoTlNTdHJpbmcgKmVycm9yKSllcnJvckNhbGxiYWNrIHN1
Y2Nlc3NDYWxsYmFjazoodm9pZCheKShOU0FycmF5Lyo8TlNTdHJpbmc+Ki8gKipjb2x1bW5OYW1l
cywgTlNTdHJpbmcgKipub3RlcywgZG91YmxlICp0aW1lc3RhbXAsIFJXSVByb3RvY29sSlNPTk9i
amVjdCAqKnZhbHVlcywgUldJUHJvdG9jb2xKU09OT2JqZWN0ICoqcGF5bG9hZCwgTlNJbnRlZ2Vy
ICpkYXRhYmFzZUlkLCBSV0lQcm90b2NvbERhdGFiYXNlRXJyb3IgKipzcWxFcnJvciwgUldJUHJv
dG9jb2xEYXRhYmFzZVByaW1hcnlDb2xvcnMgKnNjcmVlbkNvbG9yLCBSV0lQcm90b2NvbERhdGFi
YXNlRXhlY3V0ZVNRTEFzeW5jT3B0aW9uYWxSZXR1cm5WYWx1ZXNQcmludENvbG9yICpwcmludENv
bG9yKSlzdWNjZXNzQ2FsbGJhY2sgZGF0YWJhc2VJZDooTlNJbnRlZ2VyKWRhdGFiYXNlSWQgcXVl
cnk6KE5TU3RyaW5nICopcXVlcnk7Ci0tICh2b2lkKWV4ZWN1dGVTUUxTeW5jV2l0aEVycm9yQ2Fs
bGJhY2s6KHZvaWQoXikoTlNTdHJpbmcgKmVycm9yKSllcnJvckNhbGxiYWNrIHN1Y2Nlc3NDYWxs
YmFjazoodm9pZCheKShOU0FycmF5Lyo8TlNTdHJpbmc+Ki8gKmNvbHVtbk5hbWVzLCBOU1N0cmlu
ZyAqbm90ZXMsIGRvdWJsZSB0aW1lc3RhbXAsIFJXSVByb3RvY29sSlNPTk9iamVjdCAqdmFsdWVz
LCBSV0lQcm90b2NvbEpTT05PYmplY3QgKnBheWxvYWQsIE5TSW50ZWdlciBkYXRhYmFzZUlkLCBS
V0lQcm90b2NvbERhdGFiYXNlRXJyb3IgKnNxbEVycm9yLCBSV0lQcm90b2NvbERhdGFiYXNlUHJp
bWFyeUNvbG9ycyBzY3JlZW5Db2xvciwgUldJUHJvdG9jb2xEYXRhYmFzZUV4ZWN1dGVTUUxTeW5j
UHJpbnRDb2xvciBwcmludENvbG9yKSlzdWNjZXNzQ2FsbGJhY2sgZGF0YWJhc2VJZDooTlNJbnRl
Z2VyKWRhdGFiYXNlSWQgcXVlcnk6KE5TU3RyaW5nICopcXVlcnk7Ci0tICh2b2lkKWV4ZWN1dGVT
UUxBc3luY1dpdGhFcnJvckNhbGxiYWNrOih2b2lkKF4pKE5TU3RyaW5nICplcnJvcikpZXJyb3JD
YWxsYmFjayBzdWNjZXNzQ2FsbGJhY2s6KHZvaWQoXikoTlNBcnJheS8qPE5TU3RyaW5nPiovICpj
b2x1bW5OYW1lcywgTlNTdHJpbmcgKm5vdGVzLCBkb3VibGUgdGltZXN0YW1wLCBSV0lQcm90b2Nv
bEpTT05PYmplY3QgKnZhbHVlcywgUldJUHJvdG9jb2xKU09OT2JqZWN0ICpwYXlsb2FkLCBOU0lu
dGVnZXIgZGF0YWJhc2VJZCwgUldJUHJvdG9jb2xEYXRhYmFzZUVycm9yICpzcWxFcnJvciwgUldJ
UHJvdG9jb2xEYXRhYmFzZVByaW1hcnlDb2xvcnMgc2NyZWVuQ29sb3IsIFJXSVByb3RvY29sRGF0
YWJhc2VFeGVjdXRlU1FMQXN5bmNQcmludENvbG9yIHByaW50Q29sb3IpKXN1Y2Nlc3NDYWxsYmFj
ayBkYXRhYmFzZUlkOihOU0ludGVnZXIpZGF0YWJhc2VJZCBxdWVyeTooTlNTdHJpbmcgKilxdWVy
eTsKKy0gKHZvaWQpZXhlY3V0ZVNRTFN5bmNPcHRpb25hbFJldHVyblZhbHVlc1dpdGhFcnJvckNh
bGxiYWNrOih2b2lkKF4pKE5TU3RyaW5nICplcnJvcikpZXJyb3JDYWxsYmFjayBzdWNjZXNzQ2Fs
bGJhY2s6KHZvaWQoXikoTlNBcnJheS8qPE5TU3RyaW5nPiovICoqY29sdW1uTmFtZXMsIE5TU3Ry
aW5nICoqbm90ZXMsIGRvdWJsZSAqdGltZXN0YW1wLCBSV0lQcm90b2NvbEpTT05PYmplY3QgKip2
YWx1ZXMsIFJXSVByb3RvY29sSlNPTk9iamVjdCAqKnBheWxvYWQsIGludCAqZGF0YWJhc2VJZCwg
UldJUHJvdG9jb2xEYXRhYmFzZUVycm9yICoqc3FsRXJyb3IsIFJXSVByb3RvY29sRGF0YWJhc2VQ
cmltYXJ5Q29sb3JzICpzY3JlZW5Db2xvciwgUldJUHJvdG9jb2xEYXRhYmFzZUV4ZWN1dGVTUUxT
eW5jT3B0aW9uYWxSZXR1cm5WYWx1ZXNQcmludENvbG9yICpwcmludENvbG9yKSlzdWNjZXNzQ2Fs
bGJhY2sgZGF0YWJhc2VJZDooaW50KWRhdGFiYXNlSWQgcXVlcnk6KE5TU3RyaW5nICopcXVlcnk7
CistICh2b2lkKWV4ZWN1dGVTUUxBc3luY09wdGlvbmFsUmV0dXJuVmFsdWVzV2l0aEVycm9yQ2Fs
bGJhY2s6KHZvaWQoXikoTlNTdHJpbmcgKmVycm9yKSllcnJvckNhbGxiYWNrIHN1Y2Nlc3NDYWxs
YmFjazoodm9pZCheKShOU0FycmF5Lyo8TlNTdHJpbmc+Ki8gKipjb2x1bW5OYW1lcywgTlNTdHJp
bmcgKipub3RlcywgZG91YmxlICp0aW1lc3RhbXAsIFJXSVByb3RvY29sSlNPTk9iamVjdCAqKnZh
bHVlcywgUldJUHJvdG9jb2xKU09OT2JqZWN0ICoqcGF5bG9hZCwgaW50ICpkYXRhYmFzZUlkLCBS
V0lQcm90b2NvbERhdGFiYXNlRXJyb3IgKipzcWxFcnJvciwgUldJUHJvdG9jb2xEYXRhYmFzZVBy
aW1hcnlDb2xvcnMgKnNjcmVlbkNvbG9yLCBSV0lQcm90b2NvbERhdGFiYXNlRXhlY3V0ZVNRTEFz
eW5jT3B0aW9uYWxSZXR1cm5WYWx1ZXNQcmludENvbG9yICpwcmludENvbG9yKSlzdWNjZXNzQ2Fs
bGJhY2sgZGF0YWJhc2VJZDooaW50KWRhdGFiYXNlSWQgcXVlcnk6KE5TU3RyaW5nICopcXVlcnk7
CistICh2b2lkKWV4ZWN1dGVTUUxTeW5jV2l0aEVycm9yQ2FsbGJhY2s6KHZvaWQoXikoTlNTdHJp
bmcgKmVycm9yKSllcnJvckNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjazoodm9pZCheKShOU0FycmF5
Lyo8TlNTdHJpbmc+Ki8gKmNvbHVtbk5hbWVzLCBOU1N0cmluZyAqbm90ZXMsIGRvdWJsZSB0aW1l
c3RhbXAsIFJXSVByb3RvY29sSlNPTk9iamVjdCAqdmFsdWVzLCBSV0lQcm90b2NvbEpTT05PYmpl
Y3QgKnBheWxvYWQsIGludCBkYXRhYmFzZUlkLCBSV0lQcm90b2NvbERhdGFiYXNlRXJyb3IgKnNx
bEVycm9yLCBSV0lQcm90b2NvbERhdGFiYXNlUHJpbWFyeUNvbG9ycyBzY3JlZW5Db2xvciwgUldJ
UHJvdG9jb2xEYXRhYmFzZUV4ZWN1dGVTUUxTeW5jUHJpbnRDb2xvciBwcmludENvbG9yKSlzdWNj
ZXNzQ2FsbGJhY2sgZGF0YWJhc2VJZDooaW50KWRhdGFiYXNlSWQgcXVlcnk6KE5TU3RyaW5nICop
cXVlcnk7CistICh2b2lkKWV4ZWN1dGVTUUxBc3luY1dpdGhFcnJvckNhbGxiYWNrOih2b2lkKF4p
KE5TU3RyaW5nICplcnJvcikpZXJyb3JDYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2s6KHZvaWQoXiko
TlNBcnJheS8qPE5TU3RyaW5nPiovICpjb2x1bW5OYW1lcywgTlNTdHJpbmcgKm5vdGVzLCBkb3Vi
bGUgdGltZXN0YW1wLCBSV0lQcm90b2NvbEpTT05PYmplY3QgKnZhbHVlcywgUldJUHJvdG9jb2xK
U09OT2JqZWN0ICpwYXlsb2FkLCBpbnQgZGF0YWJhc2VJZCwgUldJUHJvdG9jb2xEYXRhYmFzZUVy
cm9yICpzcWxFcnJvciwgUldJUHJvdG9jb2xEYXRhYmFzZVByaW1hcnlDb2xvcnMgc2NyZWVuQ29s
b3IsIFJXSVByb3RvY29sRGF0YWJhc2VFeGVjdXRlU1FMQXN5bmNQcmludENvbG9yIHByaW50Q29s
b3IpKXN1Y2Nlc3NDYWxsYmFjayBkYXRhYmFzZUlkOihpbnQpZGF0YWJhc2VJZCBxdWVyeTooTlNT
dHJpbmcgKilxdWVyeTsKIEBlbmQKIAogCkBAIC0xNTcwLDcgKzE1NzAsNyBAQCB1c2luZyBuYW1l
c3BhY2UgSW5zcGVjdG9yOwogCiBAaW1wbGVtZW50YXRpb24gUldJUHJvdG9jb2xEYXRhYmFzZUVy
cm9yCiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2Fn
ZSBjb2RlOihOU0ludGVnZXIpY29kZTsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aE1lc3NhZ2U6
KE5TU3RyaW5nICopbWVzc2FnZSBjb2RlOihpbnQpY29kZTsKIHsKICAgICBzZWxmID0gW3N1cGVy
IGluaXRdOwogICAgIGlmICghc2VsZikKQEAgLTE1OTQsMTIgKzE1OTQsMTIgQEAgdXNpbmcgbmFt
ZXNwYWNlIEluc3BlY3RvcjsKICAgICByZXR1cm4gW3N1cGVyIHN0cmluZ0ZvcktleTpAIm1lc3Nh
Z2UiXTsKIH0KIAotLSAodm9pZClzZXRDb2RlOihOU0ludGVnZXIpY29kZQorLSAodm9pZClzZXRD
b2RlOihpbnQpY29kZQogewogICAgIFtzdXBlciBzZXRJbnRlZ2VyOmNvZGUgZm9yS2V5OkAiY29k
ZSJdOwogfQogCi0tIChOU0ludGVnZXIpY29kZQorLSAoaW50KWNvZGUKIHsKICAgICByZXR1cm4g
W3N1cGVyIGludGVnZXJGb3JLZXk6QCJjb2RlIl07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0
aC1vcHRpb25hbC1jYWxsLXJldHVybi1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0IGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2NvbW1hbmRzLXdp
dGgtb3B0aW9uYWwtY2FsbC1yZXR1cm4tcGFyYW1ldGVycy5qc29uLXJlc3VsdAppbmRleCAwZTc0
N2ZlLi5kZGIyYmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1vcHRpb25hbC1jYWxsLXJldHVy
bi1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9jb21tYW5kcy13aXRoLW9wdGlvbmFsLWNhbGwt
cmV0dXJuLXBhcmFtZXRlcnMuanNvbi1yZXN1bHQKQEAgLTk1Miw3ICs5NTIsNyBAQCB2b2lkIE9i
akNJbnNwZWN0b3JEYXRhYmFzZUJhY2tlbmREaXNwYXRjaGVyOjpleGVjdXRlQWxsT3B0aW9uYWxQ
YXJhbWV0ZXJzKGxvbmcgYwogICAgICAgICBiYWNrZW5kRGlzcGF0Y2hlcigpLT5zZW5kUmVzcG9u
c2UoY2FsbElkLCBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpLCBlcnJvcik7CiAgICAgfTsKIAot
ICAgIGlkIHN1Y2Nlc3NDYWxsYmFjayA9IF4oTlNBcnJheS8qPE5TU3RyaW5nPiovICoqY29sdW1u
TmFtZXMsIE5TU3RyaW5nICoqbm90ZXMsIGRvdWJsZSAqdGltZXN0YW1wLCBSV0lQcm90b2NvbEpT
T05PYmplY3QgKip2YWx1ZXMsIFJXSVByb3RvY29sSlNPTk9iamVjdCAqKnBheWxvYWQsIE5TSW50
ZWdlciAqZGF0YWJhc2VJZCwgUldJUHJvdG9jb2xEYXRhYmFzZUVycm9yICoqc3FsRXJyb3IsIFJX
SVByb3RvY29sRGF0YWJhc2VQcmltYXJ5Q29sb3JzICpzY3JlZW5Db2xvciwgUldJUHJvdG9jb2xE
YXRhYmFzZUV4ZWN1dGVBbGxPcHRpb25hbFBhcmFtZXRlcnNQcmludENvbG9yICpwcmludENvbG9y
KSB7CisgICAgaWQgc3VjY2Vzc0NhbGxiYWNrID0gXihOU0FycmF5Lyo8TlNTdHJpbmc+Ki8gKipj
b2x1bW5OYW1lcywgTlNTdHJpbmcgKipub3RlcywgZG91YmxlICp0aW1lc3RhbXAsIFJXSVByb3Rv
Y29sSlNPTk9iamVjdCAqKnZhbHVlcywgUldJUHJvdG9jb2xKU09OT2JqZWN0ICoqcGF5bG9hZCwg
aW50ICpkYXRhYmFzZUlkLCBSV0lQcm90b2NvbERhdGFiYXNlRXJyb3IgKipzcWxFcnJvciwgUldJ
UHJvdG9jb2xEYXRhYmFzZVByaW1hcnlDb2xvcnMgKnNjcmVlbkNvbG9yLCBSV0lQcm90b2NvbERh
dGFiYXNlRXhlY3V0ZUFsbE9wdGlvbmFsUGFyYW1ldGVyc1ByaW50Q29sb3IgKnByaW50Q29sb3Ip
IHsKICAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVzdWx0T2JqZWN0ID0gSW5zcGVj
dG9yT2JqZWN0OjpjcmVhdGUoKTsKICAgICAgICAgVEhST1dfRVhDRVBUSU9OX0ZPUl9CQURfT1BU
SU9OQUxfUEFSQU1FVEVSKGNvbHVtbk5hbWVzLCBAImNvbHVtbk5hbWVzIik7CiAgICAgICAgIFRI
Uk9XX0VYQ0VQVElPTl9GT1JfQkFEX09QVElPTkFMX1BBUkFNRVRFUihub3RlcywgQCJub3RlcyIp
OwpAQCAtOTk1LDcgKzk5NSw3IEBAIHZvaWQgT2JqQ0luc3BlY3RvckRhdGFiYXNlQmFja2VuZERp
c3BhdGNoZXI6OmV4ZWN1dGVBbGxPcHRpb25hbFBhcmFtZXRlcnMobG9uZyBjCiAgICAgUldJUHJv
dG9jb2xKU09OT2JqZWN0ICpvX2luX3BheWxvYWQ7CiAgICAgaWYgKGluX3BheWxvYWQpCiAgICAg
ICAgIG9faW5fcGF5bG9hZCA9IFtbW1JXSVByb3RvY29sSlNPTk9iamVjdCBhbGxvY10gaW5pdFdp
dGhJbnNwZWN0b3JPYmplY3Q6KmluX3BheWxvYWRdIGF1dG9yZWxlYXNlXTsKLSAgICBOU0ludGVn
ZXIgb19pbl9kYXRhYmFzZUlkOworICAgIGludCBvX2luX2RhdGFiYXNlSWQ7CiAgICAgaWYgKGlu
X2RhdGFiYXNlSWQpCiAgICAgICAgIG9faW5fZGF0YWJhc2VJZCA9ICppbl9kYXRhYmFzZUlkOwog
ICAgIFJXSVByb3RvY29sRGF0YWJhc2VFcnJvciAqb19pbl9zcWxFcnJvcjsKQEAgLTEwMTcsNyAr
MTAxNyw3IEBAIHZvaWQgT2JqQ0luc3BlY3RvckRhdGFiYXNlQmFja2VuZERpc3BhdGNoZXI6OmV4
ZWN1dGVOb09wdGlvbmFsUGFyYW1ldGVycyhsb25nIGNhCiAgICAgICAgIGJhY2tlbmREaXNwYXRj
aGVyKCktPnNlbmRSZXNwb25zZShjYWxsSWQsIEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCksIGVy
cm9yKTsKICAgICB9OwogCi0gICAgaWQgc3VjY2Vzc0NhbGxiYWNrID0gXihOU0FycmF5Lyo8TlNT
dHJpbmc+Ki8gKmNvbHVtbk5hbWVzLCBOU1N0cmluZyAqbm90ZXMsIGRvdWJsZSB0aW1lc3RhbXAs
IFJXSVByb3RvY29sSlNPTk9iamVjdCAqdmFsdWVzLCBSV0lQcm90b2NvbEpTT05PYmplY3QgKnBh
eWxvYWQsIE5TSW50ZWdlciBkYXRhYmFzZUlkLCBSV0lQcm90b2NvbERhdGFiYXNlRXJyb3IgKnNx
bEVycm9yLCBSV0lQcm90b2NvbERhdGFiYXNlUHJpbWFyeUNvbG9ycyBzY3JlZW5Db2xvciwgUldJ
UHJvdG9jb2xEYXRhYmFzZUV4ZWN1dGVOb09wdGlvbmFsUGFyYW1ldGVyc1ByaW50Q29sb3IgcHJp
bnRDb2xvcikgeworICAgIGlkIHN1Y2Nlc3NDYWxsYmFjayA9IF4oTlNBcnJheS8qPE5TU3RyaW5n
PiovICpjb2x1bW5OYW1lcywgTlNTdHJpbmcgKm5vdGVzLCBkb3VibGUgdGltZXN0YW1wLCBSV0lQ
cm90b2NvbEpTT05PYmplY3QgKnZhbHVlcywgUldJUHJvdG9jb2xKU09OT2JqZWN0ICpwYXlsb2Fk
LCBpbnQgZGF0YWJhc2VJZCwgUldJUHJvdG9jb2xEYXRhYmFzZUVycm9yICpzcWxFcnJvciwgUldJ
UHJvdG9jb2xEYXRhYmFzZVByaW1hcnlDb2xvcnMgc2NyZWVuQ29sb3IsIFJXSVByb3RvY29sRGF0
YWJhc2VFeGVjdXRlTm9PcHRpb25hbFBhcmFtZXRlcnNQcmludENvbG9yIHByaW50Q29sb3IpIHsK
ICAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVzdWx0T2JqZWN0ID0gSW5zcGVjdG9y
T2JqZWN0OjpjcmVhdGUoKTsKICAgICAgICAgVEhST1dfRVhDRVBUSU9OX0ZPUl9SRVFVSVJFRF9Q
QVJBTUVURVIoY29sdW1uTmFtZXMsIEAiY29sdW1uTmFtZXMiKTsKICAgICAgICAgVEhST1dfRVhD
RVBUSU9OX0ZPUl9SRVFVSVJFRF9QQVJBTUVURVIobm90ZXMsIEAibm90ZXMiKTsKQEAgLTEwNDEs
NyArMTA0MSw3IEBAIHZvaWQgT2JqQ0luc3BlY3RvckRhdGFiYXNlQmFja2VuZERpc3BhdGNoZXI6
OmV4ZWN1dGVOb09wdGlvbmFsUGFyYW1ldGVycyhsb25nIGNhCiAgICAgZG91YmxlIG9faW5fdGlt
ZXN0YW1wID0gaW5fdGltZXN0YW1wOwogICAgIFJXSVByb3RvY29sSlNPTk9iamVjdCAqb19pbl92
YWx1ZXMgPSBbW1tSV0lQcm90b2NvbEpTT05PYmplY3QgYWxsb2NdIGluaXRXaXRoSW5zcGVjdG9y
T2JqZWN0OmluX3ZhbHVlc10gYXV0b3JlbGVhc2VdOwogICAgIFJXSVByb3RvY29sSlNPTk9iamVj
dCAqb19pbl9wYXlsb2FkID0gW1tbUldJUHJvdG9jb2xKU09OT2JqZWN0IGFsbG9jXSBpbml0V2l0
aEluc3BlY3Rvck9iamVjdDppbl9wYXlsb2FkXSBhdXRvcmVsZWFzZV07Ci0gICAgTlNJbnRlZ2Vy
IG9faW5fZGF0YWJhc2VJZCA9IGluX2RhdGFiYXNlSWQ7CisgICAgaW50IG9faW5fZGF0YWJhc2VJ
ZCA9IGluX2RhdGFiYXNlSWQ7CiAgICAgUldJUHJvdG9jb2xEYXRhYmFzZUVycm9yICpvX2luX3Nx
bEVycm9yID0gW1tbUldJUHJvdG9jb2xEYXRhYmFzZUVycm9yIGFsbG9jXSBpbml0V2l0aEluc3Bl
Y3Rvck9iamVjdDppbl9zcWxFcnJvcl0gYXV0b3JlbGVhc2VdOwogICAgIFJXSVByb3RvY29sRGF0
YWJhc2VQcmltYXJ5Q29sb3JzIG9faW5fc2NyZWVuQ29sb3IgPSBmcm9tUHJvdG9jb2xTdHJpbmc8
UldJUHJvdG9jb2xEYXRhYmFzZVByaW1hcnlDb2xvcnM+KGluX3NjcmVlbkNvbG9yKTsKICAgICBS
V0lQcm90b2NvbERhdGFiYXNlRXhlY3V0ZU5vT3B0aW9uYWxQYXJhbWV0ZXJzUHJpbnRDb2xvciBv
X2luX3ByaW50Q29sb3IgPSBmcm9tUHJvdG9jb2xTdHJpbmc8UldJUHJvdG9jb2xEYXRhYmFzZUV4
ZWN1dGVOb09wdGlvbmFsUGFyYW1ldGVyc1ByaW50Q29sb3I+KGluX3ByaW50Q29sb3IpOwpAQCAt
MTM1OCwxNSArMTM1OCwxNSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBSV0lQcm90b2Nv
bERhdGFiYXNlRXhlY3V0ZU5vT3B0aW9uYWxQYXJhbWV0ZXJzUHJpbnRDbwogCiAKIEBpbnRlcmZh
Y2UgUldJUHJvdG9jb2xEYXRhYmFzZUVycm9yIDogUldJUHJvdG9jb2xKU09OT2JqZWN0Ci0tIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgY29kZTooTlNJ
bnRlZ2VyKWNvZGU7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhNZXNzYWdlOihOU1N0cmluZyAq
KW1lc3NhZ2UgY29kZTooaW50KWNvZGU7CiAvKiByZXF1aXJlZCAqLyBAcHJvcGVydHkgKG5vbmF0
b21pYywgY29weSkgTlNTdHJpbmcgKm1lc3NhZ2U7Ci0vKiByZXF1aXJlZCAqLyBAcHJvcGVydHkg
KG5vbmF0b21pYywgYXNzaWduKSBOU0ludGVnZXIgY29kZTsKKy8qIHJlcXVpcmVkICovIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIGludCBjb2RlOwogQGVuZAogCiBAcHJvdG9jb2wgUldJ
UHJvdG9jb2xEYXRhYmFzZURvbWFpbkhhbmRsZXIgPE5TT2JqZWN0PgogQHJlcXVpcmVkCi0tICh2
b2lkKWV4ZWN1dGVBbGxPcHRpb25hbFBhcmFtZXRlcnNXaXRoRXJyb3JDYWxsYmFjazoodm9pZChe
KShOU1N0cmluZyAqZXJyb3IpKWVycm9yQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrOih2b2lkKF4p
KE5TQXJyYXkvKjxOU1N0cmluZz4qLyAqKmNvbHVtbk5hbWVzLCBOU1N0cmluZyAqKm5vdGVzLCBk
b3VibGUgKnRpbWVzdGFtcCwgUldJUHJvdG9jb2xKU09OT2JqZWN0ICoqdmFsdWVzLCBSV0lQcm90
b2NvbEpTT05PYmplY3QgKipwYXlsb2FkLCBOU0ludGVnZXIgKmRhdGFiYXNlSWQsIFJXSVByb3Rv
Y29sRGF0YWJhc2VFcnJvciAqKnNxbEVycm9yLCBSV0lQcm90b2NvbERhdGFiYXNlUHJpbWFyeUNv
bG9ycyAqc2NyZWVuQ29sb3IsIFJXSVByb3RvY29sRGF0YWJhc2VFeGVjdXRlQWxsT3B0aW9uYWxQ
YXJhbWV0ZXJzUHJpbnRDb2xvciAqcHJpbnRDb2xvcikpc3VjY2Vzc0NhbGxiYWNrIGNvbHVtbk5h
bWVzOihOU0FycmF5Lyo8TlNTdHJpbmc+Ki8gKiopY29sdW1uTmFtZXMgbm90ZXM6KE5TU3RyaW5n
ICoqKW5vdGVzIHRpbWVzdGFtcDooZG91YmxlICopdGltZXN0YW1wIHZhbHVlczooUldJUHJvdG9j
b2xKU09OT2JqZWN0ICoqKXZhbHVlcyBwYXlsb2FkOihSV0lQcm90b2NvbEpTT05PYmplY3QgKiop
cGF5bG9hZCBkYXRhYmFzZUlkOihOU0ludGVnZXIgKilkYXRhYmFzZUlkIHNxbEVycm9yOihSV0lQ
cm90b2NvbERhdGFiYXNlRXJyb3IgKiopc3FsRXJyb3Igc2NyZWVuQ29sb3I6KFJXSVByb3RvY29s
RGF0YWJhc2VQcmltYXJ5Q29sb3JzICopc2NyZWVuQ29sb3IgcHJpbnRDb2xvcjooUldJUHJvdG9j
b2xEYXRhYmFzZUV4ZWN1dGVBbGxPcHRpb25hbFBhcmFtZXRlcnNQcmludENvbG9yICopcHJpbnRD
b2xvcjsKLS0gKHZvaWQpZXhlY3V0ZU5vT3B0aW9uYWxQYXJhbWV0ZXJzV2l0aEVycm9yQ2FsbGJh
Y2s6KHZvaWQoXikoTlNTdHJpbmcgKmVycm9yKSllcnJvckNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFj
azoodm9pZCheKShOU0FycmF5Lyo8TlNTdHJpbmc+Ki8gKmNvbHVtbk5hbWVzLCBOU1N0cmluZyAq
bm90ZXMsIGRvdWJsZSB0aW1lc3RhbXAsIFJXSVByb3RvY29sSlNPTk9iamVjdCAqdmFsdWVzLCBS
V0lQcm90b2NvbEpTT05PYmplY3QgKnBheWxvYWQsIE5TSW50ZWdlciBkYXRhYmFzZUlkLCBSV0lQ
cm90b2NvbERhdGFiYXNlRXJyb3IgKnNxbEVycm9yLCBSV0lQcm90b2NvbERhdGFiYXNlUHJpbWFy
eUNvbG9ycyBzY3JlZW5Db2xvciwgUldJUHJvdG9jb2xEYXRhYmFzZUV4ZWN1dGVOb09wdGlvbmFs
UGFyYW1ldGVyc1ByaW50Q29sb3IgcHJpbnRDb2xvcikpc3VjY2Vzc0NhbGxiYWNrIGNvbHVtbk5h
bWVzOihOU0FycmF5Lyo8TlNTdHJpbmc+Ki8gKiljb2x1bW5OYW1lcyBub3RlczooTlNTdHJpbmcg
Kilub3RlcyB0aW1lc3RhbXA6KGRvdWJsZSl0aW1lc3RhbXAgdmFsdWVzOihSV0lQcm90b2NvbEpT
T05PYmplY3QgKil2YWx1ZXMgcGF5bG9hZDooUldJUHJvdG9jb2xKU09OT2JqZWN0ICopcGF5bG9h
ZCBkYXRhYmFzZUlkOihOU0ludGVnZXIpZGF0YWJhc2VJZCBzcWxFcnJvcjooUldJUHJvdG9jb2xE
YXRhYmFzZUVycm9yICopc3FsRXJyb3Igc2NyZWVuQ29sb3I6KFJXSVByb3RvY29sRGF0YWJhc2VQ
cmltYXJ5Q29sb3JzKXNjcmVlbkNvbG9yIHByaW50Q29sb3I6KFJXSVByb3RvY29sRGF0YWJhc2VF
eGVjdXRlTm9PcHRpb25hbFBhcmFtZXRlcnNQcmludENvbG9yKXByaW50Q29sb3I7CistICh2b2lk
KWV4ZWN1dGVBbGxPcHRpb25hbFBhcmFtZXRlcnNXaXRoRXJyb3JDYWxsYmFjazoodm9pZCheKShO
U1N0cmluZyAqZXJyb3IpKWVycm9yQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrOih2b2lkKF4pKE5T
QXJyYXkvKjxOU1N0cmluZz4qLyAqKmNvbHVtbk5hbWVzLCBOU1N0cmluZyAqKm5vdGVzLCBkb3Vi
bGUgKnRpbWVzdGFtcCwgUldJUHJvdG9jb2xKU09OT2JqZWN0ICoqdmFsdWVzLCBSV0lQcm90b2Nv
bEpTT05PYmplY3QgKipwYXlsb2FkLCBpbnQgKmRhdGFiYXNlSWQsIFJXSVByb3RvY29sRGF0YWJh
c2VFcnJvciAqKnNxbEVycm9yLCBSV0lQcm90b2NvbERhdGFiYXNlUHJpbWFyeUNvbG9ycyAqc2Ny
ZWVuQ29sb3IsIFJXSVByb3RvY29sRGF0YWJhc2VFeGVjdXRlQWxsT3B0aW9uYWxQYXJhbWV0ZXJz
UHJpbnRDb2xvciAqcHJpbnRDb2xvcikpc3VjY2Vzc0NhbGxiYWNrIGNvbHVtbk5hbWVzOihOU0Fy
cmF5Lyo8TlNTdHJpbmc+Ki8gKiopY29sdW1uTmFtZXMgbm90ZXM6KE5TU3RyaW5nICoqKW5vdGVz
IHRpbWVzdGFtcDooZG91YmxlICopdGltZXN0YW1wIHZhbHVlczooUldJUHJvdG9jb2xKU09OT2Jq
ZWN0ICoqKXZhbHVlcyBwYXlsb2FkOihSV0lQcm90b2NvbEpTT05PYmplY3QgKiopcGF5bG9hZCBk
YXRhYmFzZUlkOihpbnQgKilkYXRhYmFzZUlkIHNxbEVycm9yOihSV0lQcm90b2NvbERhdGFiYXNl
RXJyb3IgKiopc3FsRXJyb3Igc2NyZWVuQ29sb3I6KFJXSVByb3RvY29sRGF0YWJhc2VQcmltYXJ5
Q29sb3JzICopc2NyZWVuQ29sb3IgcHJpbnRDb2xvcjooUldJUHJvdG9jb2xEYXRhYmFzZUV4ZWN1
dGVBbGxPcHRpb25hbFBhcmFtZXRlcnNQcmludENvbG9yICopcHJpbnRDb2xvcjsKKy0gKHZvaWQp
ZXhlY3V0ZU5vT3B0aW9uYWxQYXJhbWV0ZXJzV2l0aEVycm9yQ2FsbGJhY2s6KHZvaWQoXikoTlNT
dHJpbmcgKmVycm9yKSllcnJvckNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjazoodm9pZCheKShOU0Fy
cmF5Lyo8TlNTdHJpbmc+Ki8gKmNvbHVtbk5hbWVzLCBOU1N0cmluZyAqbm90ZXMsIGRvdWJsZSB0
aW1lc3RhbXAsIFJXSVByb3RvY29sSlNPTk9iamVjdCAqdmFsdWVzLCBSV0lQcm90b2NvbEpTT05P
YmplY3QgKnBheWxvYWQsIGludCBkYXRhYmFzZUlkLCBSV0lQcm90b2NvbERhdGFiYXNlRXJyb3Ig
KnNxbEVycm9yLCBSV0lQcm90b2NvbERhdGFiYXNlUHJpbWFyeUNvbG9ycyBzY3JlZW5Db2xvciwg
UldJUHJvdG9jb2xEYXRhYmFzZUV4ZWN1dGVOb09wdGlvbmFsUGFyYW1ldGVyc1ByaW50Q29sb3Ig
cHJpbnRDb2xvcikpc3VjY2Vzc0NhbGxiYWNrIGNvbHVtbk5hbWVzOihOU0FycmF5Lyo8TlNTdHJp
bmc+Ki8gKiljb2x1bW5OYW1lcyBub3RlczooTlNTdHJpbmcgKilub3RlcyB0aW1lc3RhbXA6KGRv
dWJsZSl0aW1lc3RhbXAgdmFsdWVzOihSV0lQcm90b2NvbEpTT05PYmplY3QgKil2YWx1ZXMgcGF5
bG9hZDooUldJUHJvdG9jb2xKU09OT2JqZWN0ICopcGF5bG9hZCBkYXRhYmFzZUlkOihpbnQpZGF0
YWJhc2VJZCBzcWxFcnJvcjooUldJUHJvdG9jb2xEYXRhYmFzZUVycm9yICopc3FsRXJyb3Igc2Ny
ZWVuQ29sb3I6KFJXSVByb3RvY29sRGF0YWJhc2VQcmltYXJ5Q29sb3JzKXNjcmVlbkNvbG9yIHBy
aW50Q29sb3I6KFJXSVByb3RvY29sRGF0YWJhc2VFeGVjdXRlTm9PcHRpb25hbFBhcmFtZXRlcnNQ
cmludENvbG9yKXByaW50Q29sb3I7CiBAZW5kCiAKIApAQCAtMTQxOCw3ICsxNDE4LDcgQEAgdXNp
bmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAogQGltcGxlbWVudGF0aW9uIFJXSVByb3RvY29sRGF0
YWJhc2VFcnJvcgogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhNZXNzYWdlOihOU1N0cmluZyAq
KW1lc3NhZ2UgY29kZTooTlNJbnRlZ2VyKWNvZGU7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhN
ZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgY29kZTooaW50KWNvZGU7CiB7CiAgICAgc2VsZiA9
IFtzdXBlciBpbml0XTsKICAgICBpZiAoIXNlbGYpCkBAIC0xNDQyLDEyICsxNDQyLDEyIEBAIHVz
aW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAgICAgcmV0dXJuIFtzdXBlciBzdHJpbmdGb3JLZXk6
QCJtZXNzYWdlIl07CiB9CiAKLS0gKHZvaWQpc2V0Q29kZTooTlNJbnRlZ2VyKWNvZGUKKy0gKHZv
aWQpc2V0Q29kZTooaW50KWNvZGUKIHsKICAgICBbc3VwZXIgc2V0SW50ZWdlcjpjb2RlIGZvcktl
eTpAImNvZGUiXTsKIH0KIAotLSAoTlNJbnRlZ2VyKWNvZGUKKy0gKGludCljb2RlCiB7CiAgICAg
cmV0dXJuIFtzdXBlciBpbnRlZ2VyRm9yS2V5OkAiY29kZSJdOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2V2ZW50
cy13aXRoLW9wdGlvbmFsLXBhcmFtZXRlcnMuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZXZlbnRzLXdpdGgtb3B0aW9u
YWwtcGFyYW1ldGVycy5qc29uLXJlc3VsdAppbmRleCAyNGMyYTYwLi43NTRmYWU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0
ZWQvZXZlbnRzLXdpdGgtb3B0aW9uYWwtcGFyYW1ldGVycy5qc29uLXJlc3VsdAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZXZlbnRz
LXdpdGgtb3B0aW9uYWwtcGFyYW1ldGVycy5qc29uLXJlc3VsdApAQCAtOTg2LDkgKzk4Niw5IEBA
IHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKIAogQGludGVyZmFjZSBSV0lQcm90b2NvbERh
dGFiYXNlRXJyb3IgOiBSV0lQcm90b2NvbEpTT05PYmplY3QKLS0gKGluc3RhbmNldHlwZSlpbml0
V2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBjb2RlOihOU0ludGVnZXIpY29kZTsKKy0g
KGluc3RhbmNldHlwZSlpbml0V2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBjb2RlOihp
bnQpY29kZTsKIC8qIHJlcXVpcmVkICovIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1N0
cmluZyAqbWVzc2FnZTsKLS8qIHJlcXVpcmVkICovIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3Np
Z24pIE5TSW50ZWdlciBjb2RlOworLyogcmVxdWlyZWQgKi8gQHByb3BlcnR5IChub25hdG9taWMs
IGFzc2lnbikgaW50IGNvZGU7CiBAZW5kCiAKIApAQCAtMTA0NSw3ICsxMDQ1LDcgQEAgdXNpbmcg
bmFtZXNwYWNlIEluc3BlY3RvcjsKIAogQGltcGxlbWVudGF0aW9uIFJXSVByb3RvY29sRGF0YWJh
c2VFcnJvcgogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1l
c3NhZ2UgY29kZTooTlNJbnRlZ2VyKWNvZGU7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhNZXNz
YWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgY29kZTooaW50KWNvZGU7CiB7CiAgICAgc2VsZiA9IFtz
dXBlciBpbml0XTsKICAgICBpZiAoIXNlbGYpCkBAIC0xMDY5LDEyICsxMDY5LDEyIEBAIHVzaW5n
IG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAgICAgcmV0dXJuIFtzdXBlciBzdHJpbmdGb3JLZXk6QCJt
ZXNzYWdlIl07CiB9CiAKLS0gKHZvaWQpc2V0Q29kZTooTlNJbnRlZ2VyKWNvZGUKKy0gKHZvaWQp
c2V0Q29kZTooaW50KWNvZGUKIHsKICAgICBbc3VwZXIgc2V0SW50ZWdlcjpjb2RlIGZvcktleTpA
ImNvZGUiXTsKIH0KIAotLSAoTlNJbnRlZ2VyKWNvZGUKKy0gKGludCljb2RlCiB7CiAgICAgcmV0
dXJuIFtzdXBlciBpbnRlZ2VyRm9yS2V5OkAiY29kZSJdOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRl
LWRvbWFpbnMtd2l0aC1mZWF0dXJlLWd1YXJkcy5qc29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1kb21haW5z
LXdpdGgtZmVhdHVyZS1ndWFyZHMuanNvbi1yZXN1bHQKaW5kZXggOTVmZmVkMy4uYWUyNDEwOSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3Rz
L2V4cGVjdGVkL2dlbmVyYXRlLWRvbWFpbnMtd2l0aC1mZWF0dXJlLWd1YXJkcy5qc29uLXJlc3Vs
dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhw
ZWN0ZWQvZ2VuZXJhdGUtZG9tYWlucy13aXRoLWZlYXR1cmUtZ3VhcmRzLmpzb24tcmVzdWx0CkBA
IC0xMDQxLDkgKzEwNDEsOSBAQCB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCiAKIEBpbnRl
cmZhY2UgUldJUHJvdG9jb2xOZXR3b3JrMk5ldHdvcmtFcnJvciA6IFJXSVByb3RvY29sSlNPTk9i
amVjdAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdl
IGNvZGU6KE5TSW50ZWdlciljb2RlOworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoTWVzc2FnZToo
TlNTdHJpbmcgKiltZXNzYWdlIGNvZGU6KGludCljb2RlOwogLyogcmVxdWlyZWQgKi8gQHByb3Bl
cnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICptZXNzYWdlOwotLyogcmVxdWlyZWQgKi8g
QHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgTlNJbnRlZ2VyIGNvZGU7CisvKiByZXF1aXJl
ZCAqLyBAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBpbnQgY29kZTsKIEBlbmQKIAogQHBy
b3RvY29sIFJXSVByb3RvY29sTmV0d29yazFEb21haW5IYW5kbGVyIDxOU09iamVjdD4KQEAgLTEx
MDQsNyArMTEwNCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKIEBpbXBsZW1lbnRh
dGlvbiBSV0lQcm90b2NvbE5ldHdvcmsyTmV0d29ya0Vycm9yCiAKLS0gKGluc3RhbmNldHlwZSlp
bml0V2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBjb2RlOihOU0ludGVnZXIpY29kZTsK
Ky0gKGluc3RhbmNldHlwZSlpbml0V2l0aE1lc3NhZ2U6KE5TU3RyaW5nICopbWVzc2FnZSBjb2Rl
OihpbnQpY29kZTsKIHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogICAgIGlmICghc2VsZikK
QEAgLTExMjgsMTIgKzExMjgsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKICAgICBy
ZXR1cm4gW3N1cGVyIHN0cmluZ0ZvcktleTpAIm1lc3NhZ2UiXTsKIH0KIAotLSAodm9pZClzZXRD
b2RlOihOU0ludGVnZXIpY29kZQorLSAodm9pZClzZXRDb2RlOihpbnQpY29kZQogewogICAgIFtz
dXBlciBzZXRJbnRlZ2VyOmNvZGUgZm9yS2V5OkAiY29kZSJdOwogfQogCi0tIChOU0ludGVnZXIp
Y29kZQorLSAoaW50KWNvZGUKIHsKICAgICByZXR1cm4gW3N1cGVyIGludGVnZXJGb3JLZXk6QCJj
b2RlIl07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Nj
cmlwdHMvdGVzdHMvZXhwZWN0ZWQvdHlwZS1kZWNsYXJhdGlvbi1vYmplY3QtdHlwZS5qc29uLXJl
c3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBl
Y3RlZC90eXBlLWRlY2xhcmF0aW9uLW9iamVjdC10eXBlLmpzb24tcmVzdWx0CmluZGV4IGM4MjJl
ZGMuLmNiNjBmZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
c2NyaXB0cy90ZXN0cy9leHBlY3RlZC90eXBlLWRlY2xhcmF0aW9uLW9iamVjdC10eXBlLmpzb24t
cmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0
cy9leHBlY3RlZC90eXBlLWRlY2xhcmF0aW9uLW9iamVjdC10eXBlLmpzb24tcmVzdWx0CkBAIC0x
MjM0LDkgKzEyMzQsOSBAQCB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCiAKIEBpbnRlcmZh
Y2UgUldJUHJvdG9jb2xEYXRhYmFzZUVycm9yIDogUldJUHJvdG9jb2xKU09OT2JqZWN0Ci0tIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgY29kZTooTlNJ
bnRlZ2VyKWNvZGU7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhNZXNzYWdlOihOU1N0cmluZyAq
KW1lc3NhZ2UgY29kZTooaW50KWNvZGU7CiAvKiByZXF1aXJlZCAqLyBAcHJvcGVydHkgKG5vbmF0
b21pYywgY29weSkgTlNTdHJpbmcgKm1lc3NhZ2U7Ci0vKiByZXF1aXJlZCAqLyBAcHJvcGVydHkg
KG5vbmF0b21pYywgYXNzaWduKSBOU0ludGVnZXIgY29kZTsKKy8qIHJlcXVpcmVkICovIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIGludCBjb2RlOwogQGVuZAogCiBAaW50ZXJmYWNlIFJX
SVByb3RvY29sRGF0YWJhc2VPcHRpb25hbFBhcmFtZXRlckJ1bmRsZSA6IFJXSVByb3RvY29sSlNP
Tk9iamVjdApAQCAtMTMzMSw3ICsxMzMxLDcgQEAgdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsK
IAogQGltcGxlbWVudGF0aW9uIFJXSVByb3RvY29sRGF0YWJhc2VFcnJvcgogCi0tIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3NhZ2UgY29kZTooTlNJbnRlZ2Vy
KWNvZGU7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhNZXNzYWdlOihOU1N0cmluZyAqKW1lc3Nh
Z2UgY29kZTooaW50KWNvZGU7CiB7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBpZiAo
IXNlbGYpCkBAIC0xMzU1LDEyICsxMzU1LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7
CiAgICAgcmV0dXJuIFtzdXBlciBzdHJpbmdGb3JLZXk6QCJtZXNzYWdlIl07CiB9CiAKLS0gKHZv
aWQpc2V0Q29kZTooTlNJbnRlZ2VyKWNvZGUKKy0gKHZvaWQpc2V0Q29kZTooaW50KWNvZGUKIHsK
ICAgICBbc3VwZXIgc2V0SW50ZWdlcjpjb2RlIGZvcktleTpAImNvZGUiXTsKIH0KIAotLSAoTlNJ
bnRlZ2VyKWNvZGUKKy0gKGludCljb2RlCiB7CiAgICAgcmV0dXJuIFtzdXBlciBpbnRlZ2VyRm9y
S2V5OkAiY29kZSJdOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL3R5cGUtcmVxdWlyaW5nLXJ1bnRpbWUtY2FzdHMu
anNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVz
dHMvZXhwZWN0ZWQvdHlwZS1yZXF1aXJpbmctcnVudGltZS1jYXN0cy5qc29uLXJlc3VsdAppbmRl
eCBhODI3YTZlLi4xZDRlNWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvdHlwZS1yZXF1aXJpbmctcnVudGltZS1jYXN0
cy5qc29uLXJlc3VsdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Njcmlw
dHMvdGVzdHMvZXhwZWN0ZWQvdHlwZS1yZXF1aXJpbmctcnVudGltZS1jYXN0cy5qc29uLXJlc3Vs
dApAQCAtMTE5MiwxMSArMTE5MiwxMSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBSV0lQ
cm90b2NvbFRlc3RDYXN0ZWRBbmltYWxzKSB7CiAKIAogQGludGVyZmFjZSBSV0lQcm90b2NvbFRl
c3RUeXBlTmVlZGluZ0Nhc3QgOiBSV0lQcm90b2NvbEpTT05PYmplY3QKLS0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aFN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgbnVtYmVyOihOU0ludGVnZXIpbnVt
YmVyIGFuaW1hbHM6KFJXSVByb3RvY29sVGVzdENhc3RlZEFuaW1hbHMpYW5pbWFscyBpZGVudGlm
aWVyOihOU0ludGVnZXIpaWRlbnRpZmllciB0cmVlOihSV0lQcm90b2NvbFRlc3RSZWN1cnNpdmVP
YmplY3QxICopdHJlZTsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFN0cmluZzooTlNTdHJpbmcg
KilzdHJpbmcgbnVtYmVyOihpbnQpbnVtYmVyIGFuaW1hbHM6KFJXSVByb3RvY29sVGVzdENhc3Rl
ZEFuaW1hbHMpYW5pbWFscyBpZGVudGlmaWVyOihpbnQpaWRlbnRpZmllciB0cmVlOihSV0lQcm90
b2NvbFRlc3RSZWN1cnNpdmVPYmplY3QxICopdHJlZTsKIC8qIHJlcXVpcmVkICovIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqc3RyaW5nOwotLyogcmVxdWlyZWQgKi8gQHBy
b3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgTlNJbnRlZ2VyIG51bWJlcjsKKy8qIHJlcXVpcmVk
ICovIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIGludCBudW1iZXI7CiAvKiByZXF1aXJl
ZCAqLyBAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBSV0lQcm90b2NvbFRlc3RDYXN0ZWRB
bmltYWxzIGFuaW1hbHM7Ci0vKiByZXF1aXJlZCAqLyBAcHJvcGVydHkgKG5vbmF0b21pYywgYXNz
aWduKSBOU0ludGVnZXIgaWRlbnRpZmllcjsKKy8qIHJlcXVpcmVkICovIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBhc3NpZ24pIGludCBpZGVudGlmaWVyOwogLyogcmVxdWlyZWQgKi8gQHByb3BlcnR5
IChub25hdG9taWMsIHJldGFpbikgUldJUHJvdG9jb2xUZXN0UmVjdXJzaXZlT2JqZWN0MSAqdHJl
ZTsKIEBlbmQKIApAQCAtMTI1OSw3ICsxMjU5LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEluc3BlY3Rv
cjsKIAogQGltcGxlbWVudGF0aW9uIFJXSVByb3RvY29sVGVzdFR5cGVOZWVkaW5nQ2FzdAogCi0t
IChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIG51bWJlcjoo
TlNJbnRlZ2VyKW51bWJlciBhbmltYWxzOihSV0lQcm90b2NvbFRlc3RDYXN0ZWRBbmltYWxzKWFu
aW1hbHMgaWRlbnRpZmllcjooTlNJbnRlZ2VyKWlkZW50aWZpZXIgdHJlZTooUldJUHJvdG9jb2xU
ZXN0UmVjdXJzaXZlT2JqZWN0MSAqKXRyZWU7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTdHJp
bmc6KE5TU3RyaW5nICopc3RyaW5nIG51bWJlcjooaW50KW51bWJlciBhbmltYWxzOihSV0lQcm90
b2NvbFRlc3RDYXN0ZWRBbmltYWxzKWFuaW1hbHMgaWRlbnRpZmllcjooaW50KWlkZW50aWZpZXIg
dHJlZTooUldJUHJvdG9jb2xUZXN0UmVjdXJzaXZlT2JqZWN0MSAqKXRyZWU7CiB7CiAgICAgc2Vs
ZiA9IFtzdXBlciBpbml0XTsKICAgICBpZiAoIXNlbGYpCkBAIC0xMjg3LDEyICsxMjg3LDEyIEBA
IHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAgICAgcmV0dXJuIFtzdXBlciBzdHJpbmdGb3JL
ZXk6QCJzdHJpbmciXTsKIH0KIAotLSAodm9pZClzZXROdW1iZXI6KE5TSW50ZWdlciludW1iZXIK
Ky0gKHZvaWQpc2V0TnVtYmVyOihpbnQpbnVtYmVyCiB7CiAgICAgW3N1cGVyIHNldEludGVnZXI6
bnVtYmVyIGZvcktleTpAIm51bWJlciJdOwogfQogCi0tIChOU0ludGVnZXIpbnVtYmVyCistIChp
bnQpbnVtYmVyCiB7CiAgICAgcmV0dXJuIFtzdXBlciBpbnRlZ2VyRm9yS2V5OkAibnVtYmVyIl07
CiB9CkBAIC0xMzA3LDEyICsxMzA3LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAg
ICAgcmV0dXJuIGZyb21Qcm90b2NvbFN0cmluZzxSV0lQcm90b2NvbFRlc3RDYXN0ZWRBbmltYWxz
Pihbc3VwZXIgc3RyaW5nRm9yS2V5OkAiYW5pbWFscyJdKTsKIH0KIAotLSAodm9pZClzZXRJZGVu
dGlmaWVyOihOU0ludGVnZXIpaWRlbnRpZmllcgorLSAodm9pZClzZXRJZGVudGlmaWVyOihpbnQp
aWRlbnRpZmllcgogewogICAgIFtzdXBlciBzZXRJbnRlZ2VyOmlkZW50aWZpZXIgZm9yS2V5OkAi
aWQiXTsKIH0KIAotLSAoTlNJbnRlZ2VyKWlkZW50aWZpZXIKKy0gKGludClpZGVudGlmaWVyCiB7
CiAgICAgcmV0dXJuIFtzdXBlciBpbnRlZ2VyRm9yS2V5OkAiaWQiXTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>