<?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>179693</bug_id>
          
          <creation_ts>2017-11-14 14:16:36 -0800</creation_ts>
          <short_desc>Add some X86 intrinsics to $vm to help with some perf testing</short_desc>
          <delta_ts>2017-11-16 16:36:19 -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>JavaScriptCore</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1371569</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-11-14 14:16:36 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372527</commentid>
    <comment_count>1</comment_count>
      <attachid>327047</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-11-15 18:49:41 -0800</bug_when>
    <thetext>Created attachment 327047
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372528</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-11-15 18:53:10 -0800</bug_when>
    <thetext>Attachment 327047 did not pass style-queue:


ERROR: Source/JavaScriptCore/tools/JSDollarVM.cpp:77:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/tools/JSDollarVM.cpp:95:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/tools/JSDollarVM.cpp:119:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:461:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 4 in 22 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>1372535</commentid>
    <comment_count>3</comment_count>
      <attachid>327047</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-11-15 19:47:17 -0800</bug_when>
    <thetext>Comment on attachment 327047
patch

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

r=me

&gt; Source/JavaScriptCore/tools/JSDollarVM.cpp:150
&gt; +    return JSValue::encode(jsBoolean(false));

Need to add UNUSED_PARAM(exec) to placate the other builds here.

&gt; Source/JavaScriptCore/tools/JSDollarVM.cpp:367
&gt; +    putDirectNativeFunction(vm, globalObject, Identifier::fromString(&amp;vm, &quot;CPUMfence&quot;), 0,
&gt; +        functionCPUMfence, CPUMfenceIntrinsic, 0);

nit: why not prefix the JS function name with lower case &quot;cpu&quot; instead of &quot;CPU&quot;?  I think starting with lower case is more consistent with WebKit convention.  Ditto for the others below as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372735</commentid>
    <comment_count>4</comment_count>
      <attachid>327047</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-11-16 11:33:02 -0800</bug_when>
    <thetext>Comment on attachment 327047
patch

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

&gt;&gt; Source/JavaScriptCore/tools/JSDollarVM.cpp:367
&gt;&gt; +        functionCPUMfence, CPUMfenceIntrinsic, 0);
&gt; 
&gt; nit: why not prefix the JS function name with lower case &quot;cpu&quot; instead of &quot;CPU&quot;?  I think starting with lower case is more consistent with WebKit convention.  Ditto for the others below as well.

sounds good</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372741</commentid>
    <comment_count>5</comment_count>
      <attachid>327090</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-11-16 11:41:48 -0800</bug_when>
    <thetext>Created attachment 327090
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372744</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-11-16 11:47:05 -0800</bug_when>
    <thetext>Attachment 327090 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:461:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/tools/JSDollarVM.cpp:77:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/tools/JSDollarVM.cpp:95:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/tools/JSDollarVM.cpp:119:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 4 in 21 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>1372755</commentid>
    <comment_count>7</comment_count>
      <attachid>327095</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-11-16 12:25:13 -0800</bug_when>
    <thetext>Created attachment 327095
patch for landing

Don&apos;t do inline asm for OS(WINDOWS)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372761</commentid>
    <comment_count>8</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-11-16 12:26:43 -0800</bug_when>
    <thetext>Attachment 327095 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:461:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/tools/JSDollarVM.cpp:77:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/tools/JSDollarVM.cpp:95:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/JavaScriptCore/tools/JSDollarVM.cpp:119:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 4 in 21 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>1372838</commentid>
    <comment_count>9</comment_count>
      <attachid>327095</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-16 15:44:15 -0800</bug_when>
    <thetext>Comment on attachment 327095
patch for landing

Clearing flags on attachment: 327095

Committed r224938: &lt;https://trac.webkit.org/changeset/224938&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372839</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-16 15:44:17 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372841</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-16 15:47:40 -0800</bug_when>
    <thetext>&lt;rdar://problem/35601358&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372876</commentid>
    <comment_count>12</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-11-16 16:36:19 -0800</bug_when>
    <thetext>Follow up fix for cpuid landed in:
https://trac.webkit.org/changeset/224942/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327047</attachid>
            <date>2017-11-15 18:49:41 -0800</date>
            <delta_ts>2017-11-16 11:41:48 -0800</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>23207</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjI0OTA4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY0IEBA
CisyMDE3LTExLTE1ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBzb21lIFg4NiBpbnRyaW5zaWNzIHRvICR2bSB0byBoZWxwIHdpdGggc29tZSBwZXJmIHRl
c3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
OTY5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEkn
dmUgYmVlbiBkb2luZyBzb21lIGxvY2FsIHBlcmYgdGVzdGluZyBvZiB2YXJpb3VzIGlkZWFzIGFu
ZCBoYXZlCisgICAgICAgIGhhZCB0aGVzZSBjb21lIGluIGhhbmR5LiBJJ20gZ29pbmcgdG8gbGFu
ZCB0aGVtIHRvIGRvbGxhclZNIHRvIHByZXZlbnQKKyAgICAgICAgaGF2aW5nIHRvIGFkZCB0aGVt
IHRvIG15IGxvY2FsIGJ1aWxkIGV2ZXJ5IHRpbWUgSSBkbyBwZXJmIHRlc3RpbmcuCisKKyAgICAg
ICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaDoKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJYODZDb21tb246Om1mZW5jZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uOjpyZHRzYyk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2
Q29tbW9uOjpwYXVzZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpj
cHVpZCk6CisgICAgICAgICogYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oOgorICAgICAgICAoSlND
OjpYODZBc3NlbWJsZXI6OnJkdHNjKToKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpwYXVz
ZSk6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6Y3B1aWQpOgorICAgICAgICAqIGRmZy9E
RkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3Ry
YWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAg
ICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRl
Q29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljQ2FsbCk6CisgICAgICAgICogZGZnL0RGR0Nsb2Ji
ZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcv
REZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRm
Zy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1
cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
R3JhcGg6OmR1bXApOgorICAgICAgICAqIGRmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6SW5QbGFjZUFic3RyYWN0U3RhdGU6OmluaXRpYWxpemUpOgor
ICAgICAgICAqIGRmZy9ERkdOb2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aW50cmlu
c2ljKToKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoKKyAgICAgICAgKiBkZmcvREZHUHJl
ZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdTYWZlVG9FeGVj
dXRlLmg6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAq
IGRmZy9ERkdWYWxpZGF0ZS5jcHA6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5jcHA6
CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBp
bGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUNQ
VUludHJpbnNpYyk6CisgICAgICAgICogcnVudGltZS9JbnRyaW5zaWMuY3BwOgorICAgICAgICAo
SlNDOjppbnRyaW5zaWNOYW1lKToKKyAgICAgICAgKiBydW50aW1lL0ludHJpbnNpYy5oOgorICAg
ICAgICAqIHRvb2xzL0pTRG9sbGFyVk0uY3BwOgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNQVU1m
ZW5jZSk6CisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ1BVUmR0c2MpOgorICAgICAgICAoSlNDOjpm
dW5jdGlvbkNQVUNwdWlkKToKKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DUFVQYXVzZSk6CisgICAg
ICAgIChKU0M6OmZ1bmN0aW9uQ1BVQ2xmbHVzaCk6CisgICAgICAgIChKU0M6OkpTRG9sbGFyVk06
OmZpbmlzaENyZWF0aW9uKToKKwogMjAxNy0xMS0xNSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFk
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjI0ODYzLgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNv
bW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJYODZDb21tb24uaAkocmV2aXNpb24gMjI0ODM4KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zODgwLDYgKzM4ODAsMjYgQEAgcHVibGljOgogICAgICAgICBzX2F2eENoZWNrU3Rh
dGUgPSAoZmxhZ3MgJiAoMSA8PCAyOCkpID8gQ1BVSURDaGVja1N0YXRlOjpTZXQgOiBDUFVJRENo
ZWNrU3RhdGU6OkNsZWFyOwogICAgIH0KIAorICAgIHZvaWQgbWZlbmNlKCkKKyAgICB7CisgICAg
ICAgIG1fYXNzZW1ibGVyLm1mZW5jZSgpOworICAgIH0KKworICAgIHZvaWQgcmR0c2MoKQorICAg
IHsKKyAgICAgICAgbV9hc3NlbWJsZXIucmR0c2MoKTsKKyAgICB9CisKKyAgICB2b2lkIHBhdXNl
KCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLnBhdXNlKCk7CisgICAgfQorCisgICAgdm9p
ZCBjcHVpZCgpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5jcHVpZCgpOworICAgIH0KKwog
cHJvdGVjdGVkOgogICAgIFg4NkFzc2VtYmxlcjo6Q29uZGl0aW9uIHg4NkNvbmRpdGlvbihSZWxh
dGlvbmFsQ29uZGl0aW9uIGNvbmQpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCShyZXZpc2lvbiAyMjQ4MzgpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNjAsNiArMjYwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgT1BfR1JPVVAxQV9FdiAgICAg
ICAgICAgICAgICAgICA9IDB4OEYsCiAgICAgICAgIE9QX05PUCAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAweDkwLAogICAgICAgICBPUF9YQ0hHX0VBWCAgICAgICAgICAgICAgICAgICAgID0g
MHg5MCwKKyAgICAgICAgT1BfUEFVU0UgICAgICAgICAgICAgICAgICAgICAgICA9IDB4OTAsCiAg
ICAgICAgIE9QX0NEUSAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDk5LAogICAgICAgICBP
UF9NT1ZfRUFYT3YgICAgICAgICAgICAgICAgICAgID0gMHhBMSwKICAgICAgICAgT1BfTU9WX092
RUFYICAgICAgICAgICAgICAgICAgICA9IDB4QTMsCkBAIC0zMDAsNiArMzAxLDcgQEAgcHJpdmF0
ZToKICAgICAgICAgT1AyX0NWVFRTRDJTSV9HZFdzZCA9IDB4MkMsCiAgICAgICAgIE9QMl9DVlRU
U1MyU0lfR2RXc2QgPSAweDJDLAogICAgICAgICBPUDJfVUNPTUlTRF9Wc2RXc2QgID0gMHgyRSwK
KyAgICAgICAgT1AyX1JEVFNDICAgICAgICAgICA9IDB4MzEsCiAgICAgICAgIE9QMl8zQllURV9F
U0NBUEVfM0EgPSAweDNBLAogICAgICAgICBPUDJfQ01PVkNDICAgICAgICAgID0gMHg0MCwKICAg
ICAgICAgT1AyX0FERFNEX1ZzZFdzZCAgICA9IDB4NTgsCkBAIC0zMTgsNiArMzIwLDcgQEAgcHJp
dmF0ZToKICAgICAgICAgT1AyX01PVkRfRWRWZCAgICAgICA9IDB4N0UsCiAgICAgICAgIE9QMl9K
Q0NfcmVsMzIgICAgICAgPSAweDgwLAogICAgICAgICBPUF9TRVRDQyAgICAgICAgICAgID0gMHg5
MCwKKyAgICAgICAgT1AyX0NQVUlEICAgICAgICAgICA9IDB4QTIsCiAgICAgICAgIE9QMl8zQllU
RV9FU0NBUEVfQUUgPSAweEFFLAogICAgICAgICBPUDJfSU1VTF9HdkV2ICAgICAgID0gMHhBRiwK
ICAgICAgICAgT1AyX0NNUFhDSEdiICAgICAgICA9IDB4QjAsCkBAIC0zNTQ0LDYgKzM1NDcsMjIg
QEAgcHVibGljOgogICAgICAgICBtX2Zvcm1hdHRlci50aHJlZUJ5dGVPcChPUDJfM0JZVEVfRVND
QVBFX0FFLCBPUDNfTUZFTkNFKTsKICAgICB9CiAKKyAgICB2b2lkIHJkdHNjKCkKKyAgICB7Cisg
ICAgICAgIG1fZm9ybWF0dGVyLnR3b0J5dGVPcChPUDJfUkRUU0MpOworICAgIH0KKworICAgIHZv
aWQgcGF1c2UoKQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIucHJlZml4KFBSRV9TU0VfRjMp
OworICAgICAgICBtX2Zvcm1hdHRlci5vbmVCeXRlT3AoT1BfUEFVU0UpOworICAgIH0KKworICAg
IHZvaWQgY3B1aWQoKQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wKE9QMl9D
UFVJRCk7CisgICAgfQorCiAgICAgLy8gQXNzZW1ibGVyIGFkbWluIG1ldGhvZHM6CiAKICAgICBz
aXplX3QgY29kZVNpemUoKSBjb25zdApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAkocmV2aXNpb24g
MjI0ODM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJl
dGVySW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMjMzLDYgKzMyMzMsMTMgQEAgYm9vbCBB
YnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeQogICAgICAgICBtX3N0YXRlLnNldFN0
cnVjdHVyZUNsb2JiZXJTdGF0ZShTdHJ1Y3R1cmVzQXJlV2F0Y2hlZCk7CiAgICAgICAgIGJyZWFr
OwogCisgICAgY2FzZSBDUFVJbnRyaW5zaWM6IAorICAgICAgICBpZiAobm9kZS0+aW50cmluc2lj
KCkgPT0gQ1BVUmR0c2NJbnRyaW5zaWMpCisgICAgICAgICAgICBmb3JOb2RlKG5vZGUpLnNldFR5
cGUoU3BlY0ludDMyT25seSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGZvck5vZGUobm9k
ZSkuc2V0VHlwZShTcGVjT3RoZXIpOworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgQ2hlY2tU
cmFwczoKICAgICBjYXNlIExvZ1NoYWRvd0NoaWNrZW5Qcm9sb2d1ZToKICAgICBjYXNlIExvZ1No
YWRvd0NoaWNrZW5UYWlsOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHAJKHJldmlzaW9uIDIyNDgzOCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDM0
LDYgKzMwMzQsMjMgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljQ2FsbAog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBjYXNlIENQVU1mZW5jZUludHJpbnNp
YzoKKyAgICBjYXNlIENQVVJkdHNjSW50cmluc2ljOgorICAgIGNhc2UgQ1BVQ3B1aWRJbnRyaW5z
aWM6CisgICAgY2FzZSBDUFVQYXVzZUludHJpbnNpYzogeworI2lmIENQVShYODZfNjQpCisgICAg
ICAgIGlmICghaXNGVEwobV9ncmFwaC5tX3BsYW4ubW9kZSkpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIGluc2VydENoZWNrcygpOworICAgICAgICBzZXQoVmlydHVhbFJlZ2lz
dGVyKHJlc3VsdE9wZXJhbmQpLAorICAgICAgICAgICAgYWRkVG9HcmFwaChDUFVJbnRyaW5zaWMs
IE9wSW5mbyhpbnRyaW5zaWMpLCBPcEluZm8oKSkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyNl
bHNlCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorICAgIH0KKworCiAgICAgZGVmYXVs
dDoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCShyZXZpc2lvbiAyMjQ4MzgpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAkod29ya2luZyBjb3B5KQpAQCAtNDM3LDYg
KzQzNyw3IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUKICAgICBj
YXNlIFN3aXRjaDoKICAgICBjYXNlIEVudHJ5U3dpdGNoOgogICAgIGNhc2UgRm9yY2VPU1JFeGl0
OgorICAgIGNhc2UgQ1BVSW50cmluc2ljOgogICAgIGNhc2UgQ2hlY2tCYWRDZWxsOgogICAgIGNh
c2UgUmV0dXJuOgogICAgIGNhc2UgVW5yZWFjaGFibGU6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdEb2VzR0MuY3BwCShyZXZpc2lvbiAyMjQ4MzgpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMCw2ICsyMDAs
NyBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBTdXBl
clNhbXBsZXJCZWdpbjoKICAgICBjYXNlIFN1cGVyU2FtcGxlckVuZDoKICAgICBjYXNlIEZvcmNl
T1NSRXhpdDoKKyAgICBjYXNlIENQVUludHJpbnNpYzoKICAgICBjYXNlIENoZWNrVHJhcHM6CiAg
ICAgY2FzZSBTdHJpbmdGcm9tQ2hhckNvZGU6CiAgICAgY2FzZSBNYXBIYXNoOgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCShyZXZpc2lvbiAyMjQ4
MzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMTMzLDYgKzIxMzMsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIENv
bXBhcmVFcVB0cjoKICAgICAgICAgY2FzZSBOdW1iZXJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4Q29u
c3RhbnQ6CiAgICAgICAgIGNhc2UgR2V0R2xvYmFsVGhpczoKKyAgICAgICAgY2FzZSBDUFVJbnRy
aW5zaWM6CiAgICAgICAgICAgICBicmVhazsKICNlbHNlCiAgICAgICAgIGRlZmF1bHQ6CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAkocmV2aXNpb24gMjI0ODM4KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI0Myw2ICsyNDMsOCBAQCB2b2lkIEdyYXBoOjpkdW1wKFByaW50U3RyZWFtJiBvdXQsIGNv
bnN0CiAgICAgICAgIG91dC5wcmludChjb21tYSwgaW5Db250ZXh0KG5vZGUtPnN0cnVjdHVyZVNl
dCgpLnRvU3RydWN0dXJlU2V0KCksIGNvbnRleHQpKTsKICAgICBpZiAobm9kZS0+aGFzU3RydWN0
dXJlKCkpCiAgICAgICAgIG91dC5wcmludChjb21tYSwgaW5Db250ZXh0KCpub2RlLT5zdHJ1Y3R1
cmUoKS5nZXQoKSwgY29udGV4dCkpOworICAgIGlmIChub2RlLT5vcCgpID09IENQVUludHJpbnNp
YykKKyAgICAgICAgb3V0LnByaW50KGNvbW1hLCBpbnRyaW5zaWNOYW1lKG5vZGUtPmludHJpbnNp
YygpKSk7CiAgICAgaWYgKG5vZGUtPmhhc1RyYW5zaXRpb24oKSkgewogICAgICAgICBvdXQucHJp
bnQoY29tbWEsIHBvaW50ZXJEdW1wSW5Db250ZXh0KG5vZGUtPnRyYW5zaXRpb24oKSwgY29udGV4
dCkpOwogI2lmIFVTRShKU1ZBTFVFNjQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRlLmNwcAkocmV2aXNpb24gMjI0ODM4
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOSw3ICsxMjksNyBAQCB2b2lkIEluUGxhY2VBYnN0cmFj
dFN0YXRlOjppbml0aWFsaXplKCkKICAgICAgICAgICAgICAgICAgICAgZW50cnlwb2ludC0+dmFs
dWVzQXRIZWFkLmFyZ3VtZW50KGkpLnNldFR5cGUoU3BlY0Jvb2xlYW4pOwogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlIEZsdXNoZWRDZWxsOgotICAgICAg
ICAgICAgICAgICAgICBlbnRyeXBvaW50LT52YWx1ZXNBdEhlYWQuYXJndW1lbnQoaSkuc2V0VHlw
ZShtX2dyYXBoLCBTcGVjQ2VsbCk7CisgICAgICAgICAgICAgICAgICAgIGVudHJ5cG9pbnQtPnZh
bHVlc0F0SGVhZC5hcmd1bWVudChpKS5zZXRUeXBlKG1fZ3JhcGgsIFNwZWNDZWxsQ2hlY2spOwog
ICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlIEZsdXNoZWRK
U1ZhbHVlOgogICAgICAgICAgICAgICAgICAgICBlbnRyeXBvaW50LT52YWx1ZXNBdEhlYWQuYXJn
dW1lbnQoaSkubWFrZUJ5dGVjb2RlVG9wKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR05vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGUuaAkocmV2aXNpb24gMjI0ODM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdOb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0NDIsNiArMTQ0MiwxMiBAQCBwdWJsaWM6CiAg
ICAgICAgIEFTU0VSVChpc0VudHJ5U3dpdGNoKCkpOwogICAgICAgICByZXR1cm4gbV9vcEluZm8u
YXM8RW50cnlTd2l0Y2hEYXRhKj4oKTsKICAgICB9CisKKyAgICBJbnRyaW5zaWMgaW50cmluc2lj
KCkKKyAgICB7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKG9wKCkgPT0gQ1BVSW50cmluc2ljKTsK
KyAgICAgICAgcmV0dXJuIG1fb3BJbmZvLmFzPEludHJpbnNpYz4oKTsKKyAgICB9CiAgICAgCiAg
ICAgdW5zaWduZWQgbnVtU3VjY2Vzc29ycygpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZVR5cGUuaAkocmV2aXNpb24gMjI0ODM4KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NTYsNyArNDU2
LDExIEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICAvKiBNZXRhZGF0YSBu
b2RlIHRoYXQgaW5pdGlhbGl6ZXMgdGhlIHN0YXRlIGZvciBmbHVzaGVkIGFyZ3VtZW50IHR5cGVz
IGF0IGFuIGVudHJ5cG9pbnQgaW4gdGhlIHByb2dyYW0uICovIFwKICAgICAvKiBDdXJyZW50bHks
IHdlIG9ubHkgdXNlIHRoaXMgZm9yIHRoZSBibG9ja3MgYW4gRW50cnlTd2l0Y2ggYnJhbmNoZXMg
dG8gYXQgdGhlIHJvb3Qgb2YgdGhlIHByb2dyYW0uICovIFwKICAgICAvKiBUaGlzIGlzIG9ubHkg
dXNlZCBpbiBTU0EuICovIFwKLSAgICBtYWNybyhJbml0aWFsaXplRW50cnlwb2ludEFyZ3VtZW50
cywgTm9kZU11c3RHZW5lcmF0ZSkKKyAgICBtYWNybyhJbml0aWFsaXplRW50cnlwb2ludEFyZ3Vt
ZW50cywgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIFwKKyAgICAvKiBVc2VkIGZvciAkdm0gcGVy
Zm9ybWFuY2UgZGVidWdnaW5nICovIFwKKyAgICBtYWNybyhDUFVJbnRyaW5zaWMsIE5vZGVSZXN1
bHRKUyB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKKwogCiAvLyBUaGlzIGVudW0gZ2VuZXJhdGVzIGEg
bW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIGlkIGZvciBhbGwgTm9kZSB0eXBlcywKIC8vIGFuZCBp
cyB1c2VkIGJ5IHRoZSBzdWJzZXF1ZW50IGVudW0gdG8gZmlsbCBvdXQgdGhlIGlkIChhcyBhY2Nl
c3NlZCB2aWEgdGhlIE5vZGVJZE1hc2spLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHJl
dmlzaW9uIDIyNDgzOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlv
blByb3BhZ2F0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQyLDYgKzEwNDIsMTQg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKKyAgICAgICAgY2Fz
ZSBDUFVJbnRyaW5zaWM6IHsKKyAgICAgICAgICAgIGlmIChtX2N1cnJlbnROb2RlLT5pbnRyaW5z
aWMoKSA9PSBDUFVSZHRzY0ludHJpbnNpYykKKyAgICAgICAgICAgICAgICBzZXRQcmVkaWN0aW9u
KFNwZWNJbnQzMk9ubHkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHNldFBy
ZWRpY3Rpb24oU3BlY090aGVyKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKICAg
ICAgICAgY2FzZSBQdXRCeVZhbEFsaWFzOgogICAgICAgICBjYXNlIERvdWJsZUFzSW50MzI6CiAg
ICAgICAgIGNhc2UgR2V0TG9jYWxVbmxpbmtlZDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCShyZXZpc2lvbiAyMjQ4MzgpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MzUyLDYgKzM1Miw3IEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3QK
ICAgICBjYXNlIFN1cGVyU2FtcGxlckJlZ2luOgogICAgIGNhc2UgU3VwZXJTYW1wbGVyRW5kOgog
ICAgIGNhc2UgRm9yY2VPU1JFeGl0OgorICAgIGNhc2UgQ1BVSW50cmluc2ljOgogICAgIGNhc2Ug
Q2hlY2tUcmFwczoKICAgICBjYXNlIExvZ1NoYWRvd0NoaWNrZW5Qcm9sb2d1ZToKICAgICBjYXNl
IExvZ1NoYWRvd0NoaWNrZW5UYWlsOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCShyZXZpc2lvbiAyMjQ4MzgpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01NjY1LDYgKzU2NjUsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBJZGVudGl0eVdpdGhQcm9maWxlOgogICAgIGNh
c2UgSW5pdGlhbGl6ZUVudHJ5cG9pbnRBcmd1bWVudHM6CiAgICAgY2FzZSBFbnRyeVN3aXRjaDoK
KyAgICBjYXNlIENQVUludHJpbnNpYzoKICAgICAgICAgREZHX0NSQVNIKG1faml0LmdyYXBoKCks
IG5vZGUsICJ1bmV4cGVjdGVkIG5vZGUgaW4gREZHIGJhY2tlbmQiKTsKICAgICAgICAgYnJlYWs7
CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwCShyZXZpc2lvbiAyMjQ4MzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MTM1LDYg
KzYxMzUsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAg
Y2FzZSBQaGFudG9tU3ByZWFkOgogICAgIGNhc2UgUGhhbnRvbU5ld0FycmF5V2l0aFNwcmVhZDoK
ICAgICBjYXNlIElkZW50aXR5V2l0aFByb2ZpbGU6CisgICAgY2FzZSBDUFVJbnRyaW5zaWM6CiAg
ICAgICAgIERGR19DUkFTSChtX2ppdC5ncmFwaCgpLCBub2RlLCAiVW5leHBlY3RlZCBub2RlIik7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHVmFsaWRhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHVmFsaWRhdGUuY3BwCShyZXZpc2lvbiAyMjQ4MzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1ZhbGlkYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMzLDYgKzMzMywxOSBA
QCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgIFZBTElEQVRFKChub2RlKSwgdHlwZSA9PSBB
cnJheTo6QXJyYXlTdG9yYWdlIHx8IHR5cGUgPT0gQXJyYXk6OlNsb3dQdXRBcnJheVN0b3JhZ2Up
OwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgY2FzZSBDUFVJbnRyaW5zaWM6IHsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNo
IChub2RlLT5pbnRyaW5zaWMoKSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIENQVU1mZW5j
ZUludHJpbnNpYzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBDUFVSZHRzY0ludHJpbnNpYzoK
KyAgICAgICAgICAgICAgICAgICAgY2FzZSBDUFVDcHVpZEludHJpbnNpYzoKKyAgICAgICAgICAg
ICAgICAgICAgY2FzZSBDUFVQYXVzZUludHJpbnNpYzoKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAg
ICAgICAgVkFMSURBVEUoKG5vZGUpLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAkocmV2aXNpb24gMjI0ODM4KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMTUsNiArMzE1LDcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxl
KE5vZGUqIAogICAgIGNhc2UgQXRvbWljc1hvcjoKICAgICBjYXNlIEF0b21pY3NJc0xvY2tGcmVl
OgogICAgIGNhc2UgSW5pdGlhbGl6ZUVudHJ5cG9pbnRBcmd1bWVudHM6CisgICAgY2FzZSBDUFVJ
bnRyaW5zaWM6CiAgICAgICAgIC8vIFRoZXNlIGFyZSBPSy4KICAgICAgICAgYnJlYWs7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHJl
dmlzaW9uIDIyNDgzOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0IzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAwMyw2ICsxMDAzLDkgQEAgcHJpdmF0ZToKICAg
ICAgICAgY2FzZSBGb3JjZU9TUkV4aXQ6CiAgICAgICAgICAgICBjb21waWxlRm9yY2VPU1JFeGl0
KCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDUFVJbnRyaW5zaWM6CisgICAg
ICAgICAgICBjb21waWxlQ1BVSW50cmluc2ljKCk7CisgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBUaHJvdzoKICAgICAgICAgICAgIGNvbXBpbGVUaHJvdygpOwogICAgICAgICAgICAg
YnJlYWs7CkBAIC04MTkwLDYgKzgxOTMsNTUgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgICAgIHRl
cm1pbmF0ZShJbmFkZXF1YXRlQ292ZXJhZ2UpOwogICAgIH0KKworICAgIHZvaWQgY29tcGlsZUNQ
VUludHJpbnNpYygpCisgICAgeworI2lmIENQVShYODZfNjQpCisgICAgICAgIEludHJpbnNpYyBp
bnRyaW5zaWMgPSBtX25vZGUtPmludHJpbnNpYygpOworICAgICAgICBzd2l0Y2ggKGludHJpbnNp
YykgeworICAgICAgICBjYXNlIENQVU1mZW5jZUludHJpbnNpYzoKKyAgICAgICAgY2FzZSBDUFVD
cHVpZEludHJpbnNpYzoKKyAgICAgICAgY2FzZSBDUFVQYXVzZUludHJpbnNpYzogeworICAgICAg
ICAgICAgUGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0gbV9vdXQucGF0Y2hwb2ludChWb2lk
KTsKKyAgICAgICAgICAgIHBhdGNocG9pbnQtPmVmZmVjdHMgPSBFZmZlY3RzOjpmb3JDYWxsKCk7
CisgICAgICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoCisgICAgICAgICAgICAgICAg
Wz1dIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgQjM6OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFt
cyYpIHsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChpbnRyaW5zaWMpIHsKKyAgICAgICAg
ICAgICAgICAgICAgY2FzZSBDUFVNZmVuY2VJbnRyaW5zaWM6CisgICAgICAgICAgICAgICAgICAg
ICAgICBqaXQubWZlbmNlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICAgICAgY2FzZSBDUFVDcHVpZEludHJpbnNpYzoKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGppdC5jcHVpZCgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgICAgIGNhc2UgQ1BVUGF1c2VJbnRyaW5zaWM6CisgICAgICAgICAgICAgICAg
ICAgICAgICBqaXQucGF1c2UoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgc2V0SlNWYWx1ZShtX291dC5jb25zdEludDY0KEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgY2FzZSBDUFVSZHRzY0ludHJpbnNpYzogeworICAgICAgICAgICAgUGF0Y2hw
b2ludFZhbHVlKiBwYXRjaHBvaW50ID0gbV9vdXQucGF0Y2hwb2ludChJbnQzMik7CisgICAgICAg
ICAgICBwYXRjaHBvaW50LT5lZmZlY3RzID0gRWZmZWN0czo6Zm9yQ2FsbCgpOworICAgICAgICAg
ICAgcGF0Y2hwb2ludC0+Y2xvYmJlcihSZWdpc3RlclNldCB7IFg4NlJlZ2lzdGVyczo6ZWF4LCBY
ODZSZWdpc3RlcnM6OmVkeCB9KTsKKyAgICAgICAgICAgIC8vIFRoZSBsb3cgMzItYml0cyBvZiBy
ZHRzYyBnbyBpbnRvIHJheC4KKyAgICAgICAgICAgIHBhdGNocG9pbnQtPnJlc3VsdENvbnN0cmFp
bnQgPSBWYWx1ZVJlcDo6cmVnKFg4NlJlZ2lzdGVyczo6ZWF4KTsKKyAgICAgICAgICAgIHBhdGNo
cG9pbnQtPnNldEdlbmVyYXRvcigKKyAgICAgICAgICAgICAgICBbPV0gKENDYWxsSGVscGVycyYg
aml0LCBjb25zdCBCMzo6U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeworICAgICAgICAgICAg
ICAgICAgICBqaXQucmR0c2MoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHNl
dEpTVmFsdWUoYm94SW50MzIocGF0Y2hwb2ludCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisKKyAgICAgICAgfQorI2VuZGlmCisgICAgfQogICAgIAogICAgIHZvaWQgY29t
cGlsZVRocm93KCkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRyaW5zaWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludHJpbnNpYy5jcHAJKHJldmlzaW9uIDIyNDgzOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludHJpbnNpYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwOSw2ICsyMDksMTQg
QEAgY29uc3QgY2hhciogaW50cmluc2ljTmFtZShJbnRyaW5zaWMgaW50cgogICAgICAgICByZXR1
cm4gIkNoZWNrSW50MzJJbnRyaW5zaWMiOwogICAgIGNhc2UgRmlhdEludDUySW50cmluc2ljOgog
ICAgICAgICByZXR1cm4gIkZpYXRJbnQ1MkludHJpbnNpYyI7CisgICAgY2FzZSBDUFVNZmVuY2VJ
bnRyaW5zaWM6CisgICAgICAgIHJldHVybiAiQ1BVTWZlbmNlSW50cmluc2ljIjsKKyAgICBjYXNl
IENQVVJkdHNjSW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkNQVVJkdHNjSW50cmluc2ljIjsK
KyAgICBjYXNlIENQVUNwdWlkSW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkNQVUNwdWlkSW50
cmluc2ljIjsKKyAgICBjYXNlIENQVVBhdXNlSW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkNQ
VVBhdXNlSW50cmluc2ljIjsKICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICByZXR1cm4gbnVsbHB0cjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludHJpbnNpYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludHJpbnNpYy5oCShyZXZpc2lvbiAyMjQ4MzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRyaW5zaWMuaAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDYgKzEyMiwxMiBA
QCBlbnVtIEludHJpbnNpYyB7CiAgICAgU2V0SW50MzJIZWFwUHJlZGljdGlvbkludHJpbnNpYywK
ICAgICBDaGVja0ludDMySW50cmluc2ljLAogICAgIEZpYXRJbnQ1MkludHJpbnNpYywKKworICAg
IC8vIFRoZXNlIGFyZSB1c2VkIGZvciAkdm0gcGVyZm9ybWFuY2UgZGVidWdnaW5nIGZlYXR1cmVz
LgorICAgIENQVU1mZW5jZUludHJpbnNpYywKKyAgICBDUFVSZHRzY0ludHJpbnNpYywKKyAgICBD
UFVDcHVpZEludHJpbnNpYywKKyAgICBDUFVQYXVzZUludHJpbnNpYywKIH07CiAKIGNvbnN0IGNo
YXIqIGludHJpbnNpY05hbWUoSW50cmluc2ljKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90b29scy9KU0RvbGxhclZNLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAJKHJldmlzaW9uIDIyNDgzOCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsOCAr
MjgsMTAgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkZ1bmN0aW9uQ29k
ZUJsb2NrLmgiCisjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIkpTQ0lubGlu
ZXMuaCIKICNpbmNsdWRlICJWTUluc3BlY3Rvci5oIgorI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+
CiAjaW5jbHVkZSA8d3RmL0RhdGFMb2cuaD4KICNpbmNsdWRlIDx3dGYvUHJvY2Vzc0lELmg+CiAj
aW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CkBAIC01OSw2ICs2MSw5NiBAQCBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc0Jvb2xlYW4oZmFsc2UpKTsKIH0KIAorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25DUFVNZmVuY2UoRXhlY1N0YXRlKikKK3sKKyNpZiBDUFUoWDg2
XzY0KQorICAgIGFzbSB2b2xhdGlsZSgibWZlbmNlIiA6OjogIm1lbW9yeSIpOworI2VuZGlmCisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKK30KKworc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DUFVSZHRzYyhFeGVjU3RhdGUqKQor
eworI2lmIENQVShYODZfNjQpCisgICAgdW5zaWduZWQgaGlnaDsKKyAgICB1bnNpZ25lZCBsb3c7
CisgICAgYXNtIHZvbGF0aWxlICgicmR0c2MiIDogIj1hIihsb3cpLCAiPWQiKGhpZ2gpKTsKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGxvdykpOworI2Vsc2UKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKDApKTsKKyNlbmRpZgorfQorCitzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNQVUNwdWlkKEV4ZWNTdGF0ZSopCit7
CisjaWYgQ1BVKFg4Nl82NCkKKyAgICBXVEY6Ong4Nl9jcHVpZCgpOworI2VuZGlmCisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKK30KKworc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DUFVQYXVzZShFeGVjU3RhdGUqKQoreworI2lm
IENQVShYODZfNjQpCisgICAgYXNtIHZvbGF0aWxlICgicGF1c2UiIDo6OiAibWVtb3J5Iik7Cisj
ZW5kaWYKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworfQorCisv
LyBUaGlzIHRha2VzIGVpdGhlciBhIEpTQXJyYXlCdWZmZXIsIEpTQXJyYXlCdWZmZXJWaWV3Kiwg
b3IgYW55IG90aGVyIG9iamVjdCBhcyBpdHMgZmlyc3QKKy8vIGFyZ3VtZW50LiBUaGUgc2Vjb25k
IGFyZ3VtZW50IGlzIGV4cGVjdGVkIHRvIGJlIGFuIGludGVnZXIuCisvLworLy8gSWYgdGhlIGZp
cnN0IGFyZ3VtZW50IGlzIGEgSlNBcnJheUJ1ZmZlciwgaXQnbGwgY2xmbHVzaCBvbiB0aGF0IGJ1
ZmZlcgorLy8gcGx1cyB0aGUgc2Vjb25kIGFyZ3VtZW50IGFzIGEgYnl0ZSBvZmZzZXQuIEl0J2xs
IGFsc28gZmx1c2ggb24gdGhlIG9iamVjdAorLy8gaXRzZWxmIHNvIGl0cyBsZW5ndGgsIGV0Yywg
YXJlbid0IGluIHRoZSBjYWNoZS4KKy8vCisvLyBJZiB0aGUgZmlyc3QgYXJndW1lbnQgaXMgbm90
IGEgSlNBcnJheUJ1ZmZlciwgd2UgbG9hZCB0aGUgYnV0dGVyZmx5CisvLyBhbmQgY2xmbHVzaCBh
dCB0aGUgYWRkcmVzcyBvZiB0aGUgYnV0dGVyZmx5Lgorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25DUFVDbGZsdXNoKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyNpZiBD
UFUoWDg2XzY0KQorICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisKKyAgICBpZiAoIWV4ZWMtPmFy
Z3VtZW50KDEpLmlzSW50MzIoKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jv
b2xlYW4oZmFsc2UpKTsKKworICAgIGF1dG8gY2xmbHVzaCA9IFtdICh2b2lkKiBwdHIpIHsKKyAg
ICAgICAgY2hhciogcHRyVG9GbHVzaCA9IHN0YXRpY19jYXN0PGNoYXIqPihwdHIpOworICAgICAg
ICBhc20gdm9sYXRpbGUgKCJjbGZsdXNoICUwIiA6OiAibSIoKnB0clRvRmx1c2gpIDogIm1lbW9y
eSIpOworICAgIH07CisKKyAgICB1aW50MzJfdCBvZmZzZXQgPSBleGVjLT5hcmd1bWVudCgxKS5h
c1VJbnQzMigpOworCisgICAgY2hhciogcHRyID0gbnVsbHB0cjsKKyAgICBpZiAoSlNBcnJheUJ1
ZmZlciogYnVmZmVyID0ganNEeW5hbWljQ2FzdDxKU0FycmF5QnVmZmVyKj4odm0sIGV4ZWMtPmFy
Z3VtZW50KDApKSkgeworICAgICAgICBpZiAoQXJyYXlCdWZmZXIqIGltcGwgPSBidWZmZXItPmlt
cGwoKSkgeworICAgICAgICAgICAgaWYgKG9mZnNldCA8IGltcGwtPmJ5dGVMZW5ndGgoKSkgewor
ICAgICAgICAgICAgICAgIGNsZmx1c2goaW1wbCk7CisgICAgICAgICAgICAgICAgcHRyID0gYml0
d2lzZV9jYXN0PGNoYXIqPihpbXBsKSArIG9mZnNldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgIH0gZWxzZSBpZiAoSlNBcnJheUJ1ZmZlclZpZXcqIHZpZXcgPSBqc0R5bmFtaWNDYXN0
PEpTQXJyYXlCdWZmZXJWaWV3Kj4odm0sIGV4ZWMtPmFyZ3VtZW50KDApKSkKKyAgICAgICAgcHRy
ID0gYml0d2lzZV9jYXN0PGNoYXIqPih2aWV3KTsKKyAgICBlbHNlIGlmIChKU09iamVjdCogb2Jq
ZWN0ID0ganNEeW5hbWljQ2FzdDxKU09iamVjdCo+KHZtLCBleGVjLT5hcmd1bWVudCgwKSkpIHsK
KyAgICAgICAgc3dpdGNoIChvYmplY3QtPmluZGV4aW5nVHlwZSgpKSB7CisgICAgICAgIGNhc2Ug
QUxMX0lOVDMyX0lOREVYSU5HX1RZUEVTOgorICAgICAgICBjYXNlIEFMTF9DT05USUdVT1VTX0lO
REVYSU5HX1RZUEVTOgorICAgICAgICBjYXNlIEFMTF9ET1VCTEVfSU5ERVhJTkdfVFlQRVM6Cisg
ICAgICAgICAgICBjbGZsdXNoKG9iamVjdCk7CisgICAgICAgICAgICBwdHIgPSBiaXR3aXNlX2Nh
c3Q8Y2hhcio+KG9iamVjdC0+YnV0dGVyZmx5KCkpICsgb2Zmc2V0OworICAgICAgICB9CisgICAg
fQorCisgICAgaWYgKCFwdHIpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29s
ZWFuKGZhbHNlKSk7CisKKyAgICBjbGZsdXNoKHB0cik7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc0Jvb2xlYW4odHJ1ZSkpOworI2Vsc2UKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzQm9vbGVhbihmYWxzZSkpOworI2VuZGlmCit9CisKIGNsYXNzIENhbGxlckZyYW1lSklUVHlw
ZUZ1bmN0b3IgewogcHVibGljOgogICAgIENhbGxlckZyYW1lSklUVHlwZUZ1bmN0b3IoKQpAQCAt
MjcwLDYgKzM2MiwxNiBAQCB2b2lkIEpTRG9sbGFyVk06OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
CiAgICAgYWRkRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgImNyYXNoIiwgZnVuY3Rpb25DcmFz
aCwgMCk7CiAgICAgCiAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9iamVj
dCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJkZmdUcnVlIiksIDAsIGZ1bmN0aW9uREZH
VHJ1ZSwgREZHVHJ1ZUludHJpbnNpYywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSkpOworCisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGds
b2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJDUFVNZmVuY2UiKSwgMCwK
KyAgICAgICAgZnVuY3Rpb25DUFVNZmVuY2UsIENQVU1mZW5jZUludHJpbnNpYywgMCk7CisgICAg
cHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZygmdm0sICJDUFVSZHRzYyIpLCAwLAorICAgICAgICBmdW5jdGlvbkNQVVJkdHNjLCBD
UFVSZHRzY0ludHJpbnNpYywgMCk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGds
b2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJDUFVDcHVpZCIpLCAwLAor
ICAgICAgICBmdW5jdGlvbkNQVUNwdWlkLCBDUFVDcHVpZEludHJpbnNpYywgMCk7CisgICAgcHV0
RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZygmdm0sICJDUFVQYXVzZSIpLCAwLAorICAgICAgICBmdW5jdGlvbkNQVVBhdXNlLCBDUFVQ
YXVzZUludHJpbnNpYywgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgIkNQ
VUNsZmx1c2giLCBmdW5jdGlvbkNQVUNsZmx1c2gsIDIpOwogICAgIAogICAgIGFkZEZ1bmN0aW9u
KHZtLCBnbG9iYWxPYmplY3QsICJsbGludFRydWUiLCBmdW5jdGlvbkxMaW50VHJ1ZSwgMCk7CiAg
ICAgYWRkRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgImppdFRydWUiLCBmdW5jdGlvbkpJVFRy
dWUsIDApOwo=
</data>
<flag name="review"
          id="346294"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327090</attachid>
            <date>2017-11-16 11:41:48 -0800</date>
            <delta_ts>2017-11-16 12:25:13 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>22281</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjI0OTMwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYyIEBA
CisyMDE3LTExLTE2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBzb21lIFg4NiBpbnRyaW5zaWNzIHRvICR2bSB0byBoZWxwIHdpdGggc29tZSBwZXJmIHRl
c3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
OTY5MworCisgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgorCisgICAgICAgIEkndmUgYmVl
biBkb2luZyBzb21lIGxvY2FsIHBlcmYgdGVzdGluZyBvZiB2YXJpb3VzIGlkZWFzIGFuZCBoYXZl
CisgICAgICAgIGhhZCB0aGVzZSBjb21lIGluIGhhbmR5LiBJJ20gZ29pbmcgdG8gbGFuZCB0aGVt
IHRvIGRvbGxhclZNIHRvIHByZXZlbnQKKyAgICAgICAgaGF2aW5nIHRvIGFkZCB0aGVtIHRvIG15
IGxvY2FsIGJ1aWxkIGV2ZXJ5IHRpbWUgSSBkbyBwZXJmIHRlc3RpbmcuCisKKyAgICAgICAgKiBh
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJYODZDb21tb246Om1mZW5jZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
WDg2Q29tbW9uOjpyZHRzYyk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
OjpwYXVzZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpjcHVpZCk6
CisgICAgICAgICogYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpYODZB
c3NlbWJsZXI6OnJkdHNjKToKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpwYXVzZSk6Cisg
ICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6Y3B1aWQpOgorICAgICAgICAqIGRmZy9ERkdBYnN0
cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50
ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICog
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBh
cnNlcjo6aGFuZGxlSW50cmluc2ljQ2FsbCk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUu
aDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHRG9l
c0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdG
aXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUp
OgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6
OmR1bXApOgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6Tm9k
ZTo6aW50cmluc2ljKToKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoKKyAgICAgICAgKiBk
ZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdT
YWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAg
ICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgor
ICAgICAgICAqIGRmZy9ERkdWYWxpZGF0ZS5jcHA6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxp
dGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRs
L0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1Rv
QjM6OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6
Y29tcGlsZUNQVUludHJpbnNpYyk6CisgICAgICAgICogcnVudGltZS9JbnRyaW5zaWMuY3BwOgor
ICAgICAgICAoSlNDOjppbnRyaW5zaWNOYW1lKToKKyAgICAgICAgKiBydW50aW1lL0ludHJpbnNp
Yy5oOgorICAgICAgICAqIHRvb2xzL0pTRG9sbGFyVk0uY3BwOgorICAgICAgICAoSlNDOjpmdW5j
dGlvbkNwdU1mZW5jZSk6CisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3B1UmR0c2MpOgorICAgICAg
ICAoSlNDOjpmdW5jdGlvbkNwdUNwdWlkKToKKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DcHVQYXVz
ZSk6CisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3B1Q2xmbHVzaCk6CisgICAgICAgIChKU0M6OkpT
RG9sbGFyVk06OmZpbmlzaENyZWF0aW9uKToKKwogMjAxNy0xMS0xNiAgSkYgQmFzdGllbiAgPGpm
YmFzdGllbkBhcHBsZS5jb20+CiAKICAgICAgICAgSXQgc2hvdWxkIGJlIGVhc2llciB0byByZWlm
eSBsYXp5IHByb3BlcnR5IG5hbWVzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCShyZXZpc2lvbiAy
MjQ5MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
WDg2Q29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4ODAsNiArMzg4MCwyNiBAQCBwdWJsaWM6
CiAgICAgICAgIHNfYXZ4Q2hlY2tTdGF0ZSA9IChmbGFncyAmICgxIDw8IDI4KSkgPyBDUFVJRENo
ZWNrU3RhdGU6OlNldCA6IENQVUlEQ2hlY2tTdGF0ZTo6Q2xlYXI7CiAgICAgfQogCisgICAgdm9p
ZCBtZmVuY2UoKQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIubWZlbmNlKCk7CisgICAgfQor
CisgICAgdm9pZCByZHRzYygpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5yZHRzYygpOwor
ICAgIH0KKworICAgIHZvaWQgcGF1c2UoKQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIucGF1
c2UoKTsKKyAgICB9CisKKyAgICB2b2lkIGNwdWlkKCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1i
bGVyLmNwdWlkKCk7CisgICAgfQorCiBwcm90ZWN0ZWQ6CiAgICAgWDg2QXNzZW1ibGVyOjpDb25k
aXRpb24geDg2Q29uZGl0aW9uKFJlbGF0aW9uYWxDb25kaXRpb24gY29uZCkKICAgICB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHJl
dmlzaW9uIDIyNDkzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNz
ZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2MCw2ICsyNjAsNyBAQCBwcml2YXRlOgogICAg
ICAgICBPUF9HUk9VUDFBX0V2ICAgICAgICAgICAgICAgICAgID0gMHg4RiwKICAgICAgICAgT1Bf
Tk9QICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4OTAsCiAgICAgICAgIE9QX1hDSEdfRUFY
ICAgICAgICAgICAgICAgICAgICAgPSAweDkwLAorICAgICAgICBPUF9QQVVTRSAgICAgICAgICAg
ICAgICAgICAgICAgID0gMHg5MCwKICAgICAgICAgT1BfQ0RRICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDB4OTksCiAgICAgICAgIE9QX01PVl9FQVhPdiAgICAgICAgICAgICAgICAgICAgPSAw
eEExLAogICAgICAgICBPUF9NT1ZfT3ZFQVggICAgICAgICAgICAgICAgICAgID0gMHhBMywKQEAg
LTMwMCw2ICszMDEsNyBAQCBwcml2YXRlOgogICAgICAgICBPUDJfQ1ZUVFNEMlNJX0dkV3NkID0g
MHgyQywKICAgICAgICAgT1AyX0NWVFRTUzJTSV9HZFdzZCA9IDB4MkMsCiAgICAgICAgIE9QMl9V
Q09NSVNEX1ZzZFdzZCAgPSAweDJFLAorICAgICAgICBPUDJfUkRUU0MgICAgICAgICAgID0gMHgz
MSwKICAgICAgICAgT1AyXzNCWVRFX0VTQ0FQRV8zQSA9IDB4M0EsCiAgICAgICAgIE9QMl9DTU9W
Q0MgICAgICAgICAgPSAweDQwLAogICAgICAgICBPUDJfQUREU0RfVnNkV3NkICAgID0gMHg1OCwK
QEAgLTMxOCw2ICszMjAsNyBAQCBwcml2YXRlOgogICAgICAgICBPUDJfTU9WRF9FZFZkICAgICAg
ID0gMHg3RSwKICAgICAgICAgT1AyX0pDQ19yZWwzMiAgICAgICA9IDB4ODAsCiAgICAgICAgIE9Q
X1NFVENDICAgICAgICAgICAgPSAweDkwLAorICAgICAgICBPUDJfQ1BVSUQgICAgICAgICAgID0g
MHhBMiwKICAgICAgICAgT1AyXzNCWVRFX0VTQ0FQRV9BRSA9IDB4QUUsCiAgICAgICAgIE9QMl9J
TVVMX0d2RXYgICAgICAgPSAweEFGLAogICAgICAgICBPUDJfQ01QWENIR2IgICAgICAgID0gMHhC
MCwKQEAgLTM1NDQsNiArMzU0NywyMiBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVyLnRo
cmVlQnl0ZU9wKE9QMl8zQllURV9FU0NBUEVfQUUsIE9QM19NRkVOQ0UpOwogICAgIH0KIAorICAg
IHZvaWQgcmR0c2MoKQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wKE9QMl9S
RFRTQyk7CisgICAgfQorCisgICAgdm9pZCBwYXVzZSgpCisgICAgeworICAgICAgICBtX2Zvcm1h
dHRlci5wcmVmaXgoUFJFX1NTRV9GMyk7CisgICAgICAgIG1fZm9ybWF0dGVyLm9uZUJ5dGVPcChP
UF9QQVVTRSk7CisgICAgfQorCisgICAgdm9pZCBjcHVpZCgpCisgICAgeworICAgICAgICBtX2Zv
cm1hdHRlci50d29CeXRlT3AoT1AyX0NQVUlEKTsKKyAgICB9CisKICAgICAvLyBBc3NlbWJsZXIg
YWRtaW4gbWV0aG9kczoKIAogICAgIHNpemVfdCBjb2RlU2l6ZSgpIGNvbnN0CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJl
dGVySW5saW5lcy5oCShyZXZpc2lvbiAyMjQ5MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMy
MzMsNiArMzIzMywxMyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5
CiAgICAgICAgIG1fc3RhdGUuc2V0U3RydWN0dXJlQ2xvYmJlclN0YXRlKFN0cnVjdHVyZXNBcmVX
YXRjaGVkKTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIENQVUludHJpbnNpYzogCisgICAg
ICAgIGlmIChub2RlLT5pbnRyaW5zaWMoKSA9PSBDUFVSZHRzY0ludHJpbnNpYykKKyAgICAgICAg
ICAgIGZvck5vZGUobm9kZSkuc2V0VHlwZShTcGVjSW50MzJPbmx5KTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKFNwZWNPdGhlcik7CisgICAgICAgIGJy
ZWFrOworCiAgICAgY2FzZSBDaGVja1RyYXBzOgogICAgIGNhc2UgTG9nU2hhZG93Q2hpY2tlblBy
b2xvZ3VlOgogICAgIGNhc2UgTG9nU2hhZG93Q2hpY2tlblRhaWw6CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMjI0
OTMwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMwMzcsNiArMzAzNywyMyBAQCBib29sIEJ5dGVDb2RlUGFyc2Vy
OjpoYW5kbGVJbnRyaW5zaWNDYWxsCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAg
IGNhc2UgQ1BVTWZlbmNlSW50cmluc2ljOgorICAgIGNhc2UgQ1BVUmR0c2NJbnRyaW5zaWM6Cisg
ICAgY2FzZSBDUFVDcHVpZEludHJpbnNpYzoKKyAgICBjYXNlIENQVVBhdXNlSW50cmluc2ljOiB7
CisjaWYgQ1BVKFg4Nl82NCkKKyAgICAgICAgaWYgKCFpc0ZUTChtX2dyYXBoLm1fcGxhbi5tb2Rl
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaW5zZXJ0Q2hlY2tzKCk7Cisg
ICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0T3BlcmFuZCksCisgICAgICAgICAgICBh
ZGRUb0dyYXBoKENQVUludHJpbnNpYywgT3BJbmZvKGludHJpbnNpYyksIE9wSW5mbygpKSk7Cisg
ICAgICAgIHJldHVybiB0cnVlOworI2Vsc2UKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlm
CisgICAgfQorCisKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgJKHJldmlzaW9u
IDIyNDkzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC00MzcsNiArNDM3LDcgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBn
cmFwaCwgTm9kZSogbm9kZQogICAgIGNhc2UgU3dpdGNoOgogICAgIGNhc2UgRW50cnlTd2l0Y2g6
CiAgICAgY2FzZSBGb3JjZU9TUkV4aXQ6CisgICAgY2FzZSBDUFVJbnRyaW5zaWM6CiAgICAgY2Fz
ZSBDaGVja0JhZENlbGw6CiAgICAgY2FzZSBSZXR1cm46CiAgICAgY2FzZSBVbnJlYWNoYWJsZToK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAJKHJldmlzaW9uIDIy
NDkzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjAwLDYgKzIwMCw3IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9k
ZSogbm9kZSkKICAgICBjYXNlIFN1cGVyU2FtcGxlckJlZ2luOgogICAgIGNhc2UgU3VwZXJTYW1w
bGVyRW5kOgogICAgIGNhc2UgRm9yY2VPU1JFeGl0OgorICAgIGNhc2UgQ1BVSW50cmluc2ljOgog
ICAgIGNhc2UgQ2hlY2tUcmFwczoKICAgICBjYXNlIFN0cmluZ0Zyb21DaGFyQ29kZToKICAgICBj
YXNlIE1hcEhhc2g6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhh
c2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQ
aGFzZS5jcHAJKHJldmlzaW9uIDIyNDkzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMzMsNiArMjEzMyw3IEBAIHBy
aXZhdGU6CiAgICAgICAgIGNhc2UgQ29tcGFyZUVxUHRyOgogICAgICAgICBjYXNlIE51bWJlclRv
U3RyaW5nV2l0aFZhbGlkUmFkaXhDb25zdGFudDoKICAgICAgICAgY2FzZSBHZXRHbG9iYWxUaGlz
OgorICAgICAgICBjYXNlIENQVUludHJpbnNpYzoKICAgICAgICAgICAgIGJyZWFrOwogI2Vsc2UK
ICAgICAgICAgZGVmYXVsdDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3Jh
cGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGgu
Y3BwCShyZXZpc2lvbiAyMjQ5MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dy
YXBoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQzLDYgKzI0Myw4IEBAIHZvaWQgR3JhcGg6OmR1
bXAoUHJpbnRTdHJlYW0mIG91dCwgY29uc3QKICAgICAgICAgb3V0LnByaW50KGNvbW1hLCBpbkNv
bnRleHQobm9kZS0+c3RydWN0dXJlU2V0KCkudG9TdHJ1Y3R1cmVTZXQoKSwgY29udGV4dCkpOwog
ICAgIGlmIChub2RlLT5oYXNTdHJ1Y3R1cmUoKSkKICAgICAgICAgb3V0LnByaW50KGNvbW1hLCBp
bkNvbnRleHQoKm5vZGUtPnN0cnVjdHVyZSgpLmdldCgpLCBjb250ZXh0KSk7CisgICAgaWYgKG5v
ZGUtPm9wKCkgPT0gQ1BVSW50cmluc2ljKQorICAgICAgICBvdXQucHJpbnQoY29tbWEsIGludHJp
bnNpY05hbWUobm9kZS0+aW50cmluc2ljKCkpKTsKICAgICBpZiAobm9kZS0+aGFzVHJhbnNpdGlv
bigpKSB7CiAgICAgICAgIG91dC5wcmludChjb21tYSwgcG9pbnRlckR1bXBJbkNvbnRleHQobm9k
ZS0+dHJhbnNpdGlvbigpLCBjb250ZXh0KSk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCShyZXZpc2lvbiAyMjQ5MzApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ0Miw2ICsx
NDQyLDEyIEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKGlzRW50cnlTd2l0Y2goKSk7CiAgICAg
ICAgIHJldHVybiBtX29wSW5mby5hczxFbnRyeVN3aXRjaERhdGEqPigpOwogICAgIH0KKworICAg
IEludHJpbnNpYyBpbnRyaW5zaWMoKQorICAgIHsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQob3Ao
KSA9PSBDUFVJbnRyaW5zaWMpOworICAgICAgICByZXR1cm4gbV9vcEluZm8uYXM8SW50cmluc2lj
PigpOworICAgIH0KICAgICAKICAgICB1bnNpZ25lZCBudW1TdWNjZXNzb3JzKCkKICAgICB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCShyZXZpc2lvbiAyMjQ5
MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQ1Niw3ICs0NTYsMTEgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcg
ewogICAgIC8qIE1ldGFkYXRhIG5vZGUgdGhhdCBpbml0aWFsaXplcyB0aGUgc3RhdGUgZm9yIGZs
dXNoZWQgYXJndW1lbnQgdHlwZXMgYXQgYW4gZW50cnlwb2ludCBpbiB0aGUgcHJvZ3JhbS4gKi8g
XAogICAgIC8qIEN1cnJlbnRseSwgd2Ugb25seSB1c2UgdGhpcyBmb3IgdGhlIGJsb2NrcyBhbiBF
bnRyeVN3aXRjaCBicmFuY2hlcyB0byBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvZ3JhbS4gKi8gXAog
ICAgIC8qIFRoaXMgaXMgb25seSB1c2VkIGluIFNTQS4gKi8gXAotICAgIG1hY3JvKEluaXRpYWxp
emVFbnRyeXBvaW50QXJndW1lbnRzLCBOb2RlTXVzdEdlbmVyYXRlKQorICAgIG1hY3JvKEluaXRp
YWxpemVFbnRyeXBvaW50QXJndW1lbnRzLCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgXAorICAg
IC8qIFVzZWQgZm9yICR2bSBwZXJmb3JtYW5jZSBkZWJ1Z2dpbmcgKi8gXAorICAgIG1hY3JvKENQ
VUludHJpbnNpYywgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAorCiAKIC8vIFRo
aXMgZW51bSBnZW5lcmF0ZXMgYSBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcgaWQgZm9yIGFsbCBO
b2RlIHR5cGVzLAogLy8gYW5kIGlzIHVzZWQgYnkgdGhlIHN1YnNlcXVlbnQgZW51bSB0byBmaWxs
IG91dCB0aGUgaWQgKGFzIGFjY2Vzc2VkIHZpYSB0aGUgTm9kZUlkTWFzaykuCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9w
YWdhdGlvblBoYXNlLmNwcAkocmV2aXNpb24gMjI0OTMwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEwNDIsNiArMTA0MiwxNCBAQCBwcml2YXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KIAorICAgICAgICBjYXNlIENQVUludHJpbnNpYzogeworICAgICAgICAgICAgaWYgKG1f
Y3VycmVudE5vZGUtPmludHJpbnNpYygpID09IENQVVJkdHNjSW50cmluc2ljKQorICAgICAgICAg
ICAgICAgIHNldFByZWRpY3Rpb24oU3BlY0ludDMyT25seSk7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgc2V0UHJlZGljdGlvbihTcGVjT3RoZXIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKwogICAgICAgICBjYXNlIFB1dEJ5VmFsQWxpYXM6CiAgICAgICAgIGNh
c2UgRG91YmxlQXNJbnQzMjoKICAgICAgICAgY2FzZSBHZXRMb2NhbFVubGlua2VkOgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgJKHJldmlzaW9u
IDIyNDkzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNTIsNiArMzUyLDcgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFi
c3RyYWN0U3RhdGVUeXBlJiBzdAogICAgIGNhc2UgU3VwZXJTYW1wbGVyQmVnaW46CiAgICAgY2Fz
ZSBTdXBlclNhbXBsZXJFbmQ6CiAgICAgY2FzZSBGb3JjZU9TUkV4aXQ6CisgICAgY2FzZSBDUFVJ
bnRyaW5zaWM6CiAgICAgY2FzZSBDaGVja1RyYXBzOgogICAgIGNhc2UgTG9nU2hhZG93Q2hpY2tl
blByb2xvZ3VlOgogICAgIGNhc2UgTG9nU2hhZG93Q2hpY2tlblRhaWw6CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJ
KHJldmlzaW9uIDIyNDkzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2NjUsNiArNTY2NSw3IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIElkZW50aXR5
V2l0aFByb2ZpbGU6CiAgICAgY2FzZSBJbml0aWFsaXplRW50cnlwb2ludEFyZ3VtZW50czoKICAg
ICBjYXNlIEVudHJ5U3dpdGNoOgorICAgIGNhc2UgQ1BVSW50cmluc2ljOgogICAgICAgICBERkdf
Q1JBU0gobV9qaXQuZ3JhcGgoKSwgbm9kZSwgInVuZXhwZWN0ZWQgbm9kZSBpbiBERkcgYmFja2Vu
ZCIpOwogICAgICAgICBicmVhazsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9uIDIyNDkzMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTYxMzUsNiArNjEzNSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGUoTm9kZSogbm9kZSkKICAgICBjYXNlIFBoYW50b21TcHJlYWQ6CiAgICAgY2FzZSBQaGFudG9t
TmV3QXJyYXlXaXRoU3ByZWFkOgogICAgIGNhc2UgSWRlbnRpdHlXaXRoUHJvZmlsZToKKyAgICBj
YXNlIENQVUludHJpbnNpYzoKICAgICAgICAgREZHX0NSQVNIKG1faml0LmdyYXBoKCksIG5vZGUs
ICJVbmV4cGVjdGVkIG5vZGUiKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYWxpZGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYWxpZGF0ZS5jcHAJKHJldmlzaW9uIDIyNDkzMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFsaWRhdGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMzMsNiArMzMzLDE5IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgVkFMSURB
VEUoKG5vZGUpLCB0eXBlID09IEFycmF5OjpBcnJheVN0b3JhZ2UgfHwgdHlwZSA9PSBBcnJheTo6
U2xvd1B1dEFycmF5U3RvcmFnZSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXNlIENQVUludHJpbnNpYzogeworICAgICAg
ICAgICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPmludHJpbnNpYygpKSB7CisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgQ1BVTWZlbmNlSW50cmluc2ljOgorICAgICAgICAgICAgICAgICAgICBjYXNl
IENQVVJkdHNjSW50cmluc2ljOgorICAgICAgICAgICAgICAgICAgICBjYXNlIENQVUNwdWlkSW50
cmluc2ljOgorICAgICAgICAgICAgICAgICAgICBjYXNlIENQVVBhdXNlSW50cmluc2ljOgorICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICAgICAgICAgICAgICBWQUxJREFURSgobm9kZSksIGZhbHNlKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBk
ZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCShy
ZXZpc2lvbiAyMjQ5MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxp
dGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxNSw2ICszMTUsNyBAQCBpbmxpbmUgQ2FwYWJp
bGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogCiAgICAgY2FzZSBBdG9taWNzWG9yOgogICAgIGNh
c2UgQXRvbWljc0lzTG9ja0ZyZWU6CiAgICAgY2FzZSBJbml0aWFsaXplRW50cnlwb2ludEFyZ3Vt
ZW50czoKKyAgICBjYXNlIENQVUludHJpbnNpYzoKICAgICAgICAgLy8gVGhlc2UgYXJlIE9LLgog
ICAgICAgICBicmVhazsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvQjMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0IzLmNwcAkocmV2aXNpb24gMjI0OTMwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAzLDYgKzEw
MDMsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBGb3JjZU9TUkV4aXQ6CiAgICAgICAgICAg
ICBjb21waWxlRm9yY2VPU1JFeGl0KCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBDUFVJbnRyaW5zaWM6CisjaWYgQ1BVKFg4Nl82NCkKKyAgICAgICAgICAgIGNvbXBpbGVDUFVJ
bnRyaW5zaWMoKTsKKyNlbHNlCisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOworI2VuZGlmCisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBUaHJvdzoKICAg
ICAgICAgICAgIGNvbXBpbGVUaHJvdygpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC04MTkwLDYg
KzgxOTcsNTMgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgICAgIHRlcm1pbmF0ZShJbmFkZXF1YXRl
Q292ZXJhZ2UpOwogICAgIH0KKworICAgIHZvaWQgY29tcGlsZUNQVUludHJpbnNpYygpCisgICAg
eworI2lmIENQVShYODZfNjQpCisgICAgICAgIEludHJpbnNpYyBpbnRyaW5zaWMgPSBtX25vZGUt
PmludHJpbnNpYygpOworICAgICAgICBzd2l0Y2ggKGludHJpbnNpYykgeworICAgICAgICBjYXNl
IENQVU1mZW5jZUludHJpbnNpYzoKKyAgICAgICAgY2FzZSBDUFVDcHVpZEludHJpbnNpYzoKKyAg
ICAgICAgY2FzZSBDUFVQYXVzZUludHJpbnNpYzogeworICAgICAgICAgICAgUGF0Y2hwb2ludFZh
bHVlKiBwYXRjaHBvaW50ID0gbV9vdXQucGF0Y2hwb2ludChWb2lkKTsKKyAgICAgICAgICAgIHBh
dGNocG9pbnQtPmVmZmVjdHMgPSBFZmZlY3RzOjpmb3JDYWxsKCk7CisgICAgICAgICAgICBwYXRj
aHBvaW50LT5zZXRHZW5lcmF0b3IoWz1dIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgQjM6OlN0
YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGludHJp
bnNpYykgeworICAgICAgICAgICAgICAgIGNhc2UgQ1BVTWZlbmNlSW50cmluc2ljOgorICAgICAg
ICAgICAgICAgICAgICBqaXQubWZlbmNlKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgIGNhc2UgQ1BVQ3B1aWRJbnRyaW5zaWM6CisgICAgICAgICAgICAgICAg
ICAgIGppdC5jcHVpZCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICBjYXNlIENQVVBhdXNlSW50cmluc2ljOgorICAgICAgICAgICAgICAgICAgICBqaXQucGF1
c2UoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHNldEpTVmFsdWUo
bV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSkpKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgQ1BVUmR0c2NJbnRyaW5zaWM6
IHsKKyAgICAgICAgICAgIFBhdGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9IG1fb3V0LnBhdGNo
cG9pbnQoSW50MzIpOworICAgICAgICAgICAgcGF0Y2hwb2ludC0+ZWZmZWN0cyA9IEVmZmVjdHM6
OmZvckNhbGwoKTsKKyAgICAgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXIoUmVnaXN0ZXJTZXQg
eyBYODZSZWdpc3RlcnM6OmVheCwgWDg2UmVnaXN0ZXJzOjplZHggfSk7CisgICAgICAgICAgICAv
LyBUaGUgbG93IDMyLWJpdHMgb2YgcmR0c2MgZ28gaW50byByYXguCisgICAgICAgICAgICBwYXRj
aHBvaW50LT5yZXN1bHRDb25zdHJhaW50ID0gVmFsdWVSZXA6OnJlZyhYODZSZWdpc3RlcnM6OmVh
eCk7CisgICAgICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoIFs9XSAoQ0NhbGxIZWxw
ZXJzJiBqaXQsIGNvbnN0IEIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7CisgICAgICAg
ICAgICAgICAgaml0LnJkdHNjKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHNldEpT
VmFsdWUoYm94SW50MzIocGF0Y2hwb2ludCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisKKyAgICAgICAgfQorI2VuZGlmCisgICAgfQogICAgIAogICAgIHZvaWQgY29tcGls
ZVRocm93KCkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRy
aW5zaWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dHJpbnNpYy5jcHAJKHJldmlzaW9uIDIyNDkzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludHJpbnNpYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwOSw2ICsyMDksMTQgQEAg
Y29uc3QgY2hhciogaW50cmluc2ljTmFtZShJbnRyaW5zaWMgaW50cgogICAgICAgICByZXR1cm4g
IkNoZWNrSW50MzJJbnRyaW5zaWMiOwogICAgIGNhc2UgRmlhdEludDUySW50cmluc2ljOgogICAg
ICAgICByZXR1cm4gIkZpYXRJbnQ1MkludHJpbnNpYyI7CisgICAgY2FzZSBDUFVNZmVuY2VJbnRy
aW5zaWM6CisgICAgICAgIHJldHVybiAiQ1BVTWZlbmNlSW50cmluc2ljIjsKKyAgICBjYXNlIENQ
VVJkdHNjSW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkNQVVJkdHNjSW50cmluc2ljIjsKKyAg
ICBjYXNlIENQVUNwdWlkSW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkNQVUNwdWlkSW50cmlu
c2ljIjsKKyAgICBjYXNlIENQVVBhdXNlSW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkNQVVBh
dXNlSW50cmluc2ljIjsKICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICByZXR1cm4gbnVsbHB0cjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludHJpbnNpYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludHJpbnNpYy5oCShyZXZpc2lvbiAyMjQ5MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRyaW5zaWMuaAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDYgKzEyMiwxMiBAQCBl
bnVtIEludHJpbnNpYyB7CiAgICAgU2V0SW50MzJIZWFwUHJlZGljdGlvbkludHJpbnNpYywKICAg
ICBDaGVja0ludDMySW50cmluc2ljLAogICAgIEZpYXRJbnQ1MkludHJpbnNpYywKKworICAgIC8v
IFRoZXNlIGFyZSB1c2VkIGZvciAkdm0gcGVyZm9ybWFuY2UgZGVidWdnaW5nIGZlYXR1cmVzLgor
ICAgIENQVU1mZW5jZUludHJpbnNpYywKKyAgICBDUFVSZHRzY0ludHJpbnNpYywKKyAgICBDUFVD
cHVpZEludHJpbnNpYywKKyAgICBDUFVQYXVzZUludHJpbnNpYywKIH07CiAKIGNvbnN0IGNoYXIq
IGludHJpbnNpY05hbWUoSW50cmluc2ljKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
b29scy9KU0RvbGxhclZNLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dG9vbHMvSlNEb2xsYXJWTS5jcHAJKHJldmlzaW9uIDIyNDkzMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsOCArMjgs
MTAgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkZ1bmN0aW9uQ29kZUJs
b2NrLmgiCisjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKICNpbmNsdWRlICJWTUluc3BlY3Rvci5oIgorI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAj
aW5jbHVkZSA8d3RmL0RhdGFMb2cuaD4KICNpbmNsdWRlIDx3dGYvUHJvY2Vzc0lELmg+CiAjaW5j
bHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CkBAIC01OSw2ICs2MSw5NyBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc0Jvb2xlYW4oZmFsc2UpKTsKIH0KIAorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25DcHVNZmVuY2UoRXhlY1N0YXRlKikKK3sKKyNpZiBDUFUoWDg2XzY0
KQorICAgIGFzbSB2b2xhdGlsZSgibWZlbmNlIiA6OjogIm1lbW9yeSIpOworI2VuZGlmCisgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKK30KKworc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcHVSZHRzYyhFeGVjU3RhdGUqKQorewor
I2lmIENQVShYODZfNjQpCisgICAgdW5zaWduZWQgaGlnaDsKKyAgICB1bnNpZ25lZCBsb3c7Cisg
ICAgYXNtIHZvbGF0aWxlICgicmR0c2MiIDogIj1hIihsb3cpLCAiPWQiKGhpZ2gpKTsKKyAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGxvdykpOworI2Vsc2UKKyAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKDApKTsKKyNlbmRpZgorfQorCitzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNwdUNwdWlkKEV4ZWNTdGF0ZSopCit7Cisj
aWYgQ1BVKFg4Nl82NCkKKyAgICBXVEY6Ong4Nl9jcHVpZCgpOworI2VuZGlmCisgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKK30KKworc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcHVQYXVzZShFeGVjU3RhdGUqKQoreworI2lmIENQ
VShYODZfNjQpCisgICAgYXNtIHZvbGF0aWxlICgicGF1c2UiIDo6OiAibWVtb3J5Iik7CisjZW5k
aWYKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworfQorCisvLyBU
aGlzIHRha2VzIGVpdGhlciBhIEpTQXJyYXlCdWZmZXIsIEpTQXJyYXlCdWZmZXJWaWV3Kiwgb3Ig
YW55IG90aGVyIG9iamVjdCBhcyBpdHMgZmlyc3QKKy8vIGFyZ3VtZW50LiBUaGUgc2Vjb25kIGFy
Z3VtZW50IGlzIGV4cGVjdGVkIHRvIGJlIGFuIGludGVnZXIuCisvLworLy8gSWYgdGhlIGZpcnN0
IGFyZ3VtZW50IGlzIGEgSlNBcnJheUJ1ZmZlciwgaXQnbGwgY2xmbHVzaCBvbiB0aGF0IGJ1ZmZl
cgorLy8gcGx1cyB0aGUgc2Vjb25kIGFyZ3VtZW50IGFzIGEgYnl0ZSBvZmZzZXQuIEl0J2xsIGFs
c28gZmx1c2ggb24gdGhlIG9iamVjdAorLy8gaXRzZWxmIHNvIGl0cyBsZW5ndGgsIGV0YywgYXJl
bid0IGluIHRoZSBjYWNoZS4KKy8vCisvLyBJZiB0aGUgZmlyc3QgYXJndW1lbnQgaXMgbm90IGEg
SlNBcnJheUJ1ZmZlciwgd2UgbG9hZCB0aGUgYnV0dGVyZmx5CisvLyBhbmQgY2xmbHVzaCBhdCB0
aGUgYWRkcmVzcyBvZiB0aGUgYnV0dGVyZmx5Lgorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25DcHVDbGZsdXNoKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyNpZiBDUFUo
WDg2XzY0KQorICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisKKyAgICBpZiAoIWV4ZWMtPmFyZ3Vt
ZW50KDEpLmlzSW50MzIoKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xl
YW4oZmFsc2UpKTsKKworICAgIGF1dG8gY2xmbHVzaCA9IFtdICh2b2lkKiBwdHIpIHsKKyAgICAg
ICAgY2hhciogcHRyVG9GbHVzaCA9IHN0YXRpY19jYXN0PGNoYXIqPihwdHIpOworICAgICAgICBh
c20gdm9sYXRpbGUgKCJjbGZsdXNoICUwIiA6OiAibSIoKnB0clRvRmx1c2gpIDogIm1lbW9yeSIp
OworICAgIH07CisKKyAgICB1aW50MzJfdCBvZmZzZXQgPSBleGVjLT5hcmd1bWVudCgxKS5hc1VJ
bnQzMigpOworCisgICAgY2hhciogcHRyID0gbnVsbHB0cjsKKyAgICBpZiAoSlNBcnJheUJ1ZmZl
ciogYnVmZmVyID0ganNEeW5hbWljQ2FzdDxKU0FycmF5QnVmZmVyKj4odm0sIGV4ZWMtPmFyZ3Vt
ZW50KDApKSkgeworICAgICAgICBpZiAoQXJyYXlCdWZmZXIqIGltcGwgPSBidWZmZXItPmltcGwo
KSkgeworICAgICAgICAgICAgaWYgKG9mZnNldCA8IGltcGwtPmJ5dGVMZW5ndGgoKSkgeworICAg
ICAgICAgICAgICAgIGNsZmx1c2goaW1wbCk7CisgICAgICAgICAgICAgICAgcHRyID0gYml0d2lz
ZV9jYXN0PGNoYXIqPihpbXBsKSArIG9mZnNldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgIH0gZWxzZSBpZiAoSlNBcnJheUJ1ZmZlclZpZXcqIHZpZXcgPSBqc0R5bmFtaWNDYXN0PEpT
QXJyYXlCdWZmZXJWaWV3Kj4odm0sIGV4ZWMtPmFyZ3VtZW50KDApKSkKKyAgICAgICAgcHRyID0g
Yml0d2lzZV9jYXN0PGNoYXIqPih2aWV3KTsKKyAgICBlbHNlIGlmIChKU09iamVjdCogb2JqZWN0
ID0ganNEeW5hbWljQ2FzdDxKU09iamVjdCo+KHZtLCBleGVjLT5hcmd1bWVudCgwKSkpIHsKKyAg
ICAgICAgc3dpdGNoIChvYmplY3QtPmluZGV4aW5nVHlwZSgpKSB7CisgICAgICAgIGNhc2UgQUxM
X0lOVDMyX0lOREVYSU5HX1RZUEVTOgorICAgICAgICBjYXNlIEFMTF9DT05USUdVT1VTX0lOREVY
SU5HX1RZUEVTOgorICAgICAgICBjYXNlIEFMTF9ET1VCTEVfSU5ERVhJTkdfVFlQRVM6CisgICAg
ICAgICAgICBjbGZsdXNoKG9iamVjdCk7CisgICAgICAgICAgICBwdHIgPSBiaXR3aXNlX2Nhc3Q8
Y2hhcio+KG9iamVjdC0+YnV0dGVyZmx5KCkpICsgb2Zmc2V0OworICAgICAgICB9CisgICAgfQor
CisgICAgaWYgKCFwdHIpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFu
KGZhbHNlKSk7CisKKyAgICBjbGZsdXNoKHB0cik7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc0Jvb2xlYW4odHJ1ZSkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZXhlYyk7CisgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZmFsc2UpKTsKKyNlbmRpZgorfQorCiBj
bGFzcyBDYWxsZXJGcmFtZUpJVFR5cGVGdW5jdG9yIHsKIHB1YmxpYzoKICAgICBDYWxsZXJGcmFt
ZUpJVFR5cGVGdW5jdG9yKCkKQEAgLTI3MCw2ICszNjMsMTIgQEAgdm9pZCBKU0RvbGxhclZNOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0sIAogICAgIGFkZEZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3Qs
ICJjcmFzaCIsIGZ1bmN0aW9uQ3Jhc2gsIDApOwogICAgIAogICAgIHB1dERpcmVjdE5hdGl2ZUZ1
bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiZGZn
VHJ1ZSIpLCAwLCBmdW5jdGlvbkRGR1RydWUsIERGR1RydWVJbnRyaW5zaWMsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKworICAgIHB1dERpcmVj
dE5hdGl2ZUZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmco
JnZtLCAiY3B1TWZlbmNlIiksIDAsIGZ1bmN0aW9uQ3B1TWZlbmNlLCBDUFVNZmVuY2VJbnRyaW5z
aWMsIDApOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiY3B1UmR0c2MiKSwgMCwgZnVuY3Rpb25DcHVSZHRz
YywgQ1BVUmR0c2NJbnRyaW5zaWMsIDApOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZt
LCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiY3B1Q3B1aWQiKSwg
MCwgZnVuY3Rpb25DcHVDcHVpZCwgQ1BVQ3B1aWRJbnRyaW5zaWMsIDApOworICAgIHB1dERpcmVj
dE5hdGl2ZUZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmco
JnZtLCAiY3B1UGF1c2UiKSwgMCwgZnVuY3Rpb25DcHVQYXVzZSwgQ1BVUGF1c2VJbnRyaW5zaWMs
IDApOworICAgIGFkZEZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsICJjcHVDbGZsdXNoIiwgZnVu
Y3Rpb25DcHVDbGZsdXNoLCAyKTsKICAgICAKICAgICBhZGRGdW5jdGlvbih2bSwgZ2xvYmFsT2Jq
ZWN0LCAibGxpbnRUcnVlIiwgZnVuY3Rpb25MTGludFRydWUsIDApOwogICAgIGFkZEZ1bmN0aW9u
KHZtLCBnbG9iYWxPYmplY3QsICJqaXRUcnVlIiwgZnVuY3Rpb25KSVRUcnVlLCAwKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327095</attachid>
            <date>2017-11-16 12:25:13 -0800</date>
            <delta_ts>2017-11-16 15:44:15 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>22361</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjI0OTMwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYyIEBA
CisyMDE3LTExLTE2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBzb21lIFg4NiBpbnRyaW5zaWNzIHRvICR2bSB0byBoZWxwIHdpdGggc29tZSBwZXJmIHRl
c3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
OTY5MworCisgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgorCisgICAgICAgIEkndmUgYmVl
biBkb2luZyBzb21lIGxvY2FsIHBlcmYgdGVzdGluZyBvZiB2YXJpb3VzIGlkZWFzIGFuZCBoYXZl
CisgICAgICAgIGhhZCB0aGVzZSBjb21lIGluIGhhbmR5LiBJJ20gZ29pbmcgdG8gbGFuZCB0aGVt
IHRvIGRvbGxhclZNIHRvIHByZXZlbnQKKyAgICAgICAgaGF2aW5nIHRvIGFkZCB0aGVtIHRvIG15
IGxvY2FsIGJ1aWxkIGV2ZXJ5IHRpbWUgSSBkbyBwZXJmIHRlc3RpbmcuCisKKyAgICAgICAgKiBh
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJYODZDb21tb246Om1mZW5jZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
WDg2Q29tbW9uOjpyZHRzYyk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
OjpwYXVzZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpjcHVpZCk6
CisgICAgICAgICogYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpYODZB
c3NlbWJsZXI6OnJkdHNjKToKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpwYXVzZSk6Cisg
ICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6Y3B1aWQpOgorICAgICAgICAqIGRmZy9ERkdBYnN0
cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50
ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICog
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBh
cnNlcjo6aGFuZGxlSW50cmluc2ljQ2FsbCk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUu
aDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHRG9l
c0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdG
aXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUp
OgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6R3JhcGg6
OmR1bXApOgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6Tm9k
ZTo6aW50cmluc2ljKToKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoKKyAgICAgICAgKiBk
ZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdT
YWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAg
ICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgor
ICAgICAgICAqIGRmZy9ERkdWYWxpZGF0ZS5jcHA6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxp
dGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRs
L0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1Rv
QjM6OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6
Y29tcGlsZUNQVUludHJpbnNpYyk6CisgICAgICAgICogcnVudGltZS9JbnRyaW5zaWMuY3BwOgor
ICAgICAgICAoSlNDOjppbnRyaW5zaWNOYW1lKToKKyAgICAgICAgKiBydW50aW1lL0ludHJpbnNp
Yy5oOgorICAgICAgICAqIHRvb2xzL0pTRG9sbGFyVk0uY3BwOgorICAgICAgICAoSlNDOjpmdW5j
dGlvbkNwdU1mZW5jZSk6CisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3B1UmR0c2MpOgorICAgICAg
ICAoSlNDOjpmdW5jdGlvbkNwdUNwdWlkKToKKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DcHVQYXVz
ZSk6CisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3B1Q2xmbHVzaCk6CisgICAgICAgIChKU0M6OkpT
RG9sbGFyVk06OmZpbmlzaENyZWF0aW9uKToKKwogMjAxNy0xMS0xNiAgSkYgQmFzdGllbiAgPGpm
YmFzdGllbkBhcHBsZS5jb20+CiAKICAgICAgICAgSXQgc2hvdWxkIGJlIGVhc2llciB0byByZWlm
eSBsYXp5IHByb3BlcnR5IG5hbWVzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCShyZXZpc2lvbiAy
MjQ5MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
WDg2Q29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4ODAsNiArMzg4MCwyNiBAQCBwdWJsaWM6
CiAgICAgICAgIHNfYXZ4Q2hlY2tTdGF0ZSA9IChmbGFncyAmICgxIDw8IDI4KSkgPyBDUFVJRENo
ZWNrU3RhdGU6OlNldCA6IENQVUlEQ2hlY2tTdGF0ZTo6Q2xlYXI7CiAgICAgfQogCisgICAgdm9p
ZCBtZmVuY2UoKQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIubWZlbmNlKCk7CisgICAgfQor
CisgICAgdm9pZCByZHRzYygpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5yZHRzYygpOwor
ICAgIH0KKworICAgIHZvaWQgcGF1c2UoKQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIucGF1
c2UoKTsKKyAgICB9CisKKyAgICB2b2lkIGNwdWlkKCkKKyAgICB7CisgICAgICAgIG1fYXNzZW1i
bGVyLmNwdWlkKCk7CisgICAgfQorCiBwcm90ZWN0ZWQ6CiAgICAgWDg2QXNzZW1ibGVyOjpDb25k
aXRpb24geDg2Q29uZGl0aW9uKFJlbGF0aW9uYWxDb25kaXRpb24gY29uZCkKICAgICB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHJl
dmlzaW9uIDIyNDkzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNz
ZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2MCw2ICsyNjAsNyBAQCBwcml2YXRlOgogICAg
ICAgICBPUF9HUk9VUDFBX0V2ICAgICAgICAgICAgICAgICAgID0gMHg4RiwKICAgICAgICAgT1Bf
Tk9QICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4OTAsCiAgICAgICAgIE9QX1hDSEdfRUFY
ICAgICAgICAgICAgICAgICAgICAgPSAweDkwLAorICAgICAgICBPUF9QQVVTRSAgICAgICAgICAg
ICAgICAgICAgICAgID0gMHg5MCwKICAgICAgICAgT1BfQ0RRICAgICAgICAgICAgICAgICAgICAg
ICAgICA9IDB4OTksCiAgICAgICAgIE9QX01PVl9FQVhPdiAgICAgICAgICAgICAgICAgICAgPSAw
eEExLAogICAgICAgICBPUF9NT1ZfT3ZFQVggICAgICAgICAgICAgICAgICAgID0gMHhBMywKQEAg
LTMwMCw2ICszMDEsNyBAQCBwcml2YXRlOgogICAgICAgICBPUDJfQ1ZUVFNEMlNJX0dkV3NkID0g
MHgyQywKICAgICAgICAgT1AyX0NWVFRTUzJTSV9HZFdzZCA9IDB4MkMsCiAgICAgICAgIE9QMl9V
Q09NSVNEX1ZzZFdzZCAgPSAweDJFLAorICAgICAgICBPUDJfUkRUU0MgICAgICAgICAgID0gMHgz
MSwKICAgICAgICAgT1AyXzNCWVRFX0VTQ0FQRV8zQSA9IDB4M0EsCiAgICAgICAgIE9QMl9DTU9W
Q0MgICAgICAgICAgPSAweDQwLAogICAgICAgICBPUDJfQUREU0RfVnNkV3NkICAgID0gMHg1OCwK
QEAgLTMxOCw2ICszMjAsNyBAQCBwcml2YXRlOgogICAgICAgICBPUDJfTU9WRF9FZFZkICAgICAg
ID0gMHg3RSwKICAgICAgICAgT1AyX0pDQ19yZWwzMiAgICAgICA9IDB4ODAsCiAgICAgICAgIE9Q
X1NFVENDICAgICAgICAgICAgPSAweDkwLAorICAgICAgICBPUDJfQ1BVSUQgICAgICAgICAgID0g
MHhBMiwKICAgICAgICAgT1AyXzNCWVRFX0VTQ0FQRV9BRSA9IDB4QUUsCiAgICAgICAgIE9QMl9J
TVVMX0d2RXYgICAgICAgPSAweEFGLAogICAgICAgICBPUDJfQ01QWENIR2IgICAgICAgID0gMHhC
MCwKQEAgLTM1NDQsNiArMzU0NywyMiBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVyLnRo
cmVlQnl0ZU9wKE9QMl8zQllURV9FU0NBUEVfQUUsIE9QM19NRkVOQ0UpOwogICAgIH0KIAorICAg
IHZvaWQgcmR0c2MoKQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIudHdvQnl0ZU9wKE9QMl9S
RFRTQyk7CisgICAgfQorCisgICAgdm9pZCBwYXVzZSgpCisgICAgeworICAgICAgICBtX2Zvcm1h
dHRlci5wcmVmaXgoUFJFX1NTRV9GMyk7CisgICAgICAgIG1fZm9ybWF0dGVyLm9uZUJ5dGVPcChP
UF9QQVVTRSk7CisgICAgfQorCisgICAgdm9pZCBjcHVpZCgpCisgICAgeworICAgICAgICBtX2Zv
cm1hdHRlci50d29CeXRlT3AoT1AyX0NQVUlEKTsKKyAgICB9CisKICAgICAvLyBBc3NlbWJsZXIg
YWRtaW4gbWV0aG9kczoKIAogICAgIHNpemVfdCBjb2RlU2l6ZSgpIGNvbnN0CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJl
dGVySW5saW5lcy5oCShyZXZpc2lvbiAyMjQ5MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMy
MzMsNiArMzIzMywxMyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5
CiAgICAgICAgIG1fc3RhdGUuc2V0U3RydWN0dXJlQ2xvYmJlclN0YXRlKFN0cnVjdHVyZXNBcmVX
YXRjaGVkKTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIENQVUludHJpbnNpYzogCisgICAg
ICAgIGlmIChub2RlLT5pbnRyaW5zaWMoKSA9PSBDUFVSZHRzY0ludHJpbnNpYykKKyAgICAgICAg
ICAgIGZvck5vZGUobm9kZSkuc2V0VHlwZShTcGVjSW50MzJPbmx5KTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKFNwZWNPdGhlcik7CisgICAgICAgIGJy
ZWFrOworCiAgICAgY2FzZSBDaGVja1RyYXBzOgogICAgIGNhc2UgTG9nU2hhZG93Q2hpY2tlblBy
b2xvZ3VlOgogICAgIGNhc2UgTG9nU2hhZG93Q2hpY2tlblRhaWw6CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMjI0
OTMwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMwMzcsNiArMzAzNywyMyBAQCBib29sIEJ5dGVDb2RlUGFyc2Vy
OjpoYW5kbGVJbnRyaW5zaWNDYWxsCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAg
IGNhc2UgQ1BVTWZlbmNlSW50cmluc2ljOgorICAgIGNhc2UgQ1BVUmR0c2NJbnRyaW5zaWM6Cisg
ICAgY2FzZSBDUFVDcHVpZEludHJpbnNpYzoKKyAgICBjYXNlIENQVVBhdXNlSW50cmluc2ljOiB7
CisjaWYgQ1BVKFg4Nl82NCkKKyAgICAgICAgaWYgKCFpc0ZUTChtX2dyYXBoLm1fcGxhbi5tb2Rl
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaW5zZXJ0Q2hlY2tzKCk7Cisg
ICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0T3BlcmFuZCksCisgICAgICAgICAgICBh
ZGRUb0dyYXBoKENQVUludHJpbnNpYywgT3BJbmZvKGludHJpbnNpYyksIE9wSW5mbygpKSk7Cisg
ICAgICAgIHJldHVybiB0cnVlOworI2Vsc2UKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlm
CisgICAgfQorCisKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgJKHJldmlzaW9u
IDIyNDkzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC00MzcsNiArNDM3LDcgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBn
cmFwaCwgTm9kZSogbm9kZQogICAgIGNhc2UgU3dpdGNoOgogICAgIGNhc2UgRW50cnlTd2l0Y2g6
CiAgICAgY2FzZSBGb3JjZU9TUkV4aXQ6CisgICAgY2FzZSBDUFVJbnRyaW5zaWM6CiAgICAgY2Fz
ZSBDaGVja0JhZENlbGw6CiAgICAgY2FzZSBSZXR1cm46CiAgICAgY2FzZSBVbnJlYWNoYWJsZToK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAJKHJldmlzaW9uIDIy
NDkzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjAwLDYgKzIwMCw3IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9k
ZSogbm9kZSkKICAgICBjYXNlIFN1cGVyU2FtcGxlckJlZ2luOgogICAgIGNhc2UgU3VwZXJTYW1w
bGVyRW5kOgogICAgIGNhc2UgRm9yY2VPU1JFeGl0OgorICAgIGNhc2UgQ1BVSW50cmluc2ljOgog
ICAgIGNhc2UgQ2hlY2tUcmFwczoKICAgICBjYXNlIFN0cmluZ0Zyb21DaGFyQ29kZToKICAgICBj
YXNlIE1hcEhhc2g6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhh
c2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQ
aGFzZS5jcHAJKHJldmlzaW9uIDIyNDkzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMzMsNiArMjEzMyw3IEBAIHBy
aXZhdGU6CiAgICAgICAgIGNhc2UgQ29tcGFyZUVxUHRyOgogICAgICAgICBjYXNlIE51bWJlclRv
U3RyaW5nV2l0aFZhbGlkUmFkaXhDb25zdGFudDoKICAgICAgICAgY2FzZSBHZXRHbG9iYWxUaGlz
OgorICAgICAgICBjYXNlIENQVUludHJpbnNpYzoKICAgICAgICAgICAgIGJyZWFrOwogI2Vsc2UK
ICAgICAgICAgZGVmYXVsdDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3Jh
cGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGgu
Y3BwCShyZXZpc2lvbiAyMjQ5MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dy
YXBoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQzLDYgKzI0Myw4IEBAIHZvaWQgR3JhcGg6OmR1
bXAoUHJpbnRTdHJlYW0mIG91dCwgY29uc3QKICAgICAgICAgb3V0LnByaW50KGNvbW1hLCBpbkNv
bnRleHQobm9kZS0+c3RydWN0dXJlU2V0KCkudG9TdHJ1Y3R1cmVTZXQoKSwgY29udGV4dCkpOwog
ICAgIGlmIChub2RlLT5oYXNTdHJ1Y3R1cmUoKSkKICAgICAgICAgb3V0LnByaW50KGNvbW1hLCBp
bkNvbnRleHQoKm5vZGUtPnN0cnVjdHVyZSgpLmdldCgpLCBjb250ZXh0KSk7CisgICAgaWYgKG5v
ZGUtPm9wKCkgPT0gQ1BVSW50cmluc2ljKQorICAgICAgICBvdXQucHJpbnQoY29tbWEsIGludHJp
bnNpY05hbWUobm9kZS0+aW50cmluc2ljKCkpKTsKICAgICBpZiAobm9kZS0+aGFzVHJhbnNpdGlv
bigpKSB7CiAgICAgICAgIG91dC5wcmludChjb21tYSwgcG9pbnRlckR1bXBJbkNvbnRleHQobm9k
ZS0+dHJhbnNpdGlvbigpLCBjb250ZXh0KSk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCShyZXZpc2lvbiAyMjQ5MzApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ0Miw2ICsx
NDQyLDEyIEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKGlzRW50cnlTd2l0Y2goKSk7CiAgICAg
ICAgIHJldHVybiBtX29wSW5mby5hczxFbnRyeVN3aXRjaERhdGEqPigpOwogICAgIH0KKworICAg
IEludHJpbnNpYyBpbnRyaW5zaWMoKQorICAgIHsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQob3Ao
KSA9PSBDUFVJbnRyaW5zaWMpOworICAgICAgICByZXR1cm4gbV9vcEluZm8uYXM8SW50cmluc2lj
PigpOworICAgIH0KICAgICAKICAgICB1bnNpZ25lZCBudW1TdWNjZXNzb3JzKCkKICAgICB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCShyZXZpc2lvbiAyMjQ5
MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQ1Niw3ICs0NTYsMTEgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcg
ewogICAgIC8qIE1ldGFkYXRhIG5vZGUgdGhhdCBpbml0aWFsaXplcyB0aGUgc3RhdGUgZm9yIGZs
dXNoZWQgYXJndW1lbnQgdHlwZXMgYXQgYW4gZW50cnlwb2ludCBpbiB0aGUgcHJvZ3JhbS4gKi8g
XAogICAgIC8qIEN1cnJlbnRseSwgd2Ugb25seSB1c2UgdGhpcyBmb3IgdGhlIGJsb2NrcyBhbiBF
bnRyeVN3aXRjaCBicmFuY2hlcyB0byBhdCB0aGUgcm9vdCBvZiB0aGUgcHJvZ3JhbS4gKi8gXAog
ICAgIC8qIFRoaXMgaXMgb25seSB1c2VkIGluIFNTQS4gKi8gXAotICAgIG1hY3JvKEluaXRpYWxp
emVFbnRyeXBvaW50QXJndW1lbnRzLCBOb2RlTXVzdEdlbmVyYXRlKQorICAgIG1hY3JvKEluaXRp
YWxpemVFbnRyeXBvaW50QXJndW1lbnRzLCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgXAorICAg
IC8qIFVzZWQgZm9yICR2bSBwZXJmb3JtYW5jZSBkZWJ1Z2dpbmcgKi8gXAorICAgIG1hY3JvKENQ
VUludHJpbnNpYywgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAorCiAKIC8vIFRo
aXMgZW51bSBnZW5lcmF0ZXMgYSBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcgaWQgZm9yIGFsbCBO
b2RlIHR5cGVzLAogLy8gYW5kIGlzIHVzZWQgYnkgdGhlIHN1YnNlcXVlbnQgZW51bSB0byBmaWxs
IG91dCB0aGUgaWQgKGFzIGFjY2Vzc2VkIHZpYSB0aGUgTm9kZUlkTWFzaykuCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9w
YWdhdGlvblBoYXNlLmNwcAkocmV2aXNpb24gMjI0OTMwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEwNDIsNiArMTA0MiwxNCBAQCBwcml2YXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KIAorICAgICAgICBjYXNlIENQVUludHJpbnNpYzogeworICAgICAgICAgICAgaWYgKG1f
Y3VycmVudE5vZGUtPmludHJpbnNpYygpID09IENQVVJkdHNjSW50cmluc2ljKQorICAgICAgICAg
ICAgICAgIHNldFByZWRpY3Rpb24oU3BlY0ludDMyT25seSk7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgc2V0UHJlZGljdGlvbihTcGVjT3RoZXIpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKwogICAgICAgICBjYXNlIFB1dEJ5VmFsQWxpYXM6CiAgICAgICAgIGNh
c2UgRG91YmxlQXNJbnQzMjoKICAgICAgICAgY2FzZSBHZXRMb2NhbFVubGlua2VkOgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgJKHJldmlzaW9u
IDIyNDkzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNTIsNiArMzUyLDcgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFi
c3RyYWN0U3RhdGVUeXBlJiBzdAogICAgIGNhc2UgU3VwZXJTYW1wbGVyQmVnaW46CiAgICAgY2Fz
ZSBTdXBlclNhbXBsZXJFbmQ6CiAgICAgY2FzZSBGb3JjZU9TUkV4aXQ6CisgICAgY2FzZSBDUFVJ
bnRyaW5zaWM6CiAgICAgY2FzZSBDaGVja1RyYXBzOgogICAgIGNhc2UgTG9nU2hhZG93Q2hpY2tl
blByb2xvZ3VlOgogICAgIGNhc2UgTG9nU2hhZG93Q2hpY2tlblRhaWw6CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJ
KHJldmlzaW9uIDIyNDkzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2NjUsNiArNTY2NSw3IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIElkZW50aXR5
V2l0aFByb2ZpbGU6CiAgICAgY2FzZSBJbml0aWFsaXplRW50cnlwb2ludEFyZ3VtZW50czoKICAg
ICBjYXNlIEVudHJ5U3dpdGNoOgorICAgIGNhc2UgQ1BVSW50cmluc2ljOgogICAgICAgICBERkdf
Q1JBU0gobV9qaXQuZ3JhcGgoKSwgbm9kZSwgInVuZXhwZWN0ZWQgbm9kZSBpbiBERkcgYmFja2Vu
ZCIpOwogICAgICAgICBicmVhazsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9uIDIyNDkzMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTYxMzUsNiArNjEzNSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGUoTm9kZSogbm9kZSkKICAgICBjYXNlIFBoYW50b21TcHJlYWQ6CiAgICAgY2FzZSBQaGFudG9t
TmV3QXJyYXlXaXRoU3ByZWFkOgogICAgIGNhc2UgSWRlbnRpdHlXaXRoUHJvZmlsZToKKyAgICBj
YXNlIENQVUludHJpbnNpYzoKICAgICAgICAgREZHX0NSQVNIKG1faml0LmdyYXBoKCksIG5vZGUs
ICJVbmV4cGVjdGVkIG5vZGUiKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYWxpZGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYWxpZGF0ZS5jcHAJKHJldmlzaW9uIDIyNDkzMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFsaWRhdGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMzMsNiArMzMzLDE5IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgVkFMSURB
VEUoKG5vZGUpLCB0eXBlID09IEFycmF5OjpBcnJheVN0b3JhZ2UgfHwgdHlwZSA9PSBBcnJheTo6
U2xvd1B1dEFycmF5U3RvcmFnZSk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXNlIENQVUludHJpbnNpYzogeworICAgICAg
ICAgICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPmludHJpbnNpYygpKSB7CisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgQ1BVTWZlbmNlSW50cmluc2ljOgorICAgICAgICAgICAgICAgICAgICBjYXNl
IENQVVJkdHNjSW50cmluc2ljOgorICAgICAgICAgICAgICAgICAgICBjYXNlIENQVUNwdWlkSW50
cmluc2ljOgorICAgICAgICAgICAgICAgICAgICBjYXNlIENQVVBhdXNlSW50cmluc2ljOgorICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICAgICAgICAgICAgICBWQUxJREFURSgobm9kZSksIGZhbHNlKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBk
ZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCShy
ZXZpc2lvbiAyMjQ5MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxp
dGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxNSw2ICszMTUsNyBAQCBpbmxpbmUgQ2FwYWJp
bGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogCiAgICAgY2FzZSBBdG9taWNzWG9yOgogICAgIGNh
c2UgQXRvbWljc0lzTG9ja0ZyZWU6CiAgICAgY2FzZSBJbml0aWFsaXplRW50cnlwb2ludEFyZ3Vt
ZW50czoKKyAgICBjYXNlIENQVUludHJpbnNpYzoKICAgICAgICAgLy8gVGhlc2UgYXJlIE9LLgog
ICAgICAgICBicmVhazsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvQjMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0IzLmNwcAkocmV2aXNpb24gMjI0OTMwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAzLDYgKzEw
MDMsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBGb3JjZU9TUkV4aXQ6CiAgICAgICAgICAg
ICBjb21waWxlRm9yY2VPU1JFeGl0KCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBDUFVJbnRyaW5zaWM6CisjaWYgQ1BVKFg4Nl82NCkKKyAgICAgICAgICAgIGNvbXBpbGVDUFVJ
bnRyaW5zaWMoKTsKKyNlbHNlCisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOworI2VuZGlmCisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBUaHJvdzoKICAg
ICAgICAgICAgIGNvbXBpbGVUaHJvdygpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC04MTkwLDYg
KzgxOTcsNTMgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgICAgIHRlcm1pbmF0ZShJbmFkZXF1YXRl
Q292ZXJhZ2UpOwogICAgIH0KKworICAgIHZvaWQgY29tcGlsZUNQVUludHJpbnNpYygpCisgICAg
eworI2lmIENQVShYODZfNjQpCisgICAgICAgIEludHJpbnNpYyBpbnRyaW5zaWMgPSBtX25vZGUt
PmludHJpbnNpYygpOworICAgICAgICBzd2l0Y2ggKGludHJpbnNpYykgeworICAgICAgICBjYXNl
IENQVU1mZW5jZUludHJpbnNpYzoKKyAgICAgICAgY2FzZSBDUFVDcHVpZEludHJpbnNpYzoKKyAg
ICAgICAgY2FzZSBDUFVQYXVzZUludHJpbnNpYzogeworICAgICAgICAgICAgUGF0Y2hwb2ludFZh
bHVlKiBwYXRjaHBvaW50ID0gbV9vdXQucGF0Y2hwb2ludChWb2lkKTsKKyAgICAgICAgICAgIHBh
dGNocG9pbnQtPmVmZmVjdHMgPSBFZmZlY3RzOjpmb3JDYWxsKCk7CisgICAgICAgICAgICBwYXRj
aHBvaW50LT5zZXRHZW5lcmF0b3IoWz1dIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgQjM6OlN0
YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGludHJp
bnNpYykgeworICAgICAgICAgICAgICAgIGNhc2UgQ1BVTWZlbmNlSW50cmluc2ljOgorICAgICAg
ICAgICAgICAgICAgICBqaXQubWZlbmNlKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgIGNhc2UgQ1BVQ3B1aWRJbnRyaW5zaWM6CisgICAgICAgICAgICAgICAg
ICAgIGppdC5jcHVpZCgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICBjYXNlIENQVVBhdXNlSW50cmluc2ljOgorICAgICAgICAgICAgICAgICAgICBqaXQucGF1
c2UoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHNldEpTVmFsdWUo
bV9vdXQuY29uc3RJbnQ2NChKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSkpKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgQ1BVUmR0c2NJbnRyaW5zaWM6
IHsKKyAgICAgICAgICAgIFBhdGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9IG1fb3V0LnBhdGNo
cG9pbnQoSW50MzIpOworICAgICAgICAgICAgcGF0Y2hwb2ludC0+ZWZmZWN0cyA9IEVmZmVjdHM6
OmZvckNhbGwoKTsKKyAgICAgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXIoUmVnaXN0ZXJTZXQg
eyBYODZSZWdpc3RlcnM6OmVheCwgWDg2UmVnaXN0ZXJzOjplZHggfSk7CisgICAgICAgICAgICAv
LyBUaGUgbG93IDMyLWJpdHMgb2YgcmR0c2MgZ28gaW50byByYXguCisgICAgICAgICAgICBwYXRj
aHBvaW50LT5yZXN1bHRDb25zdHJhaW50ID0gVmFsdWVSZXA6OnJlZyhYODZSZWdpc3RlcnM6OmVh
eCk7CisgICAgICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoIFs9XSAoQ0NhbGxIZWxw
ZXJzJiBqaXQsIGNvbnN0IEIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7CisgICAgICAg
ICAgICAgICAgaml0LnJkdHNjKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHNldEpT
VmFsdWUoYm94SW50MzIocGF0Y2hwb2ludCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisKKyAgICAgICAgfQorI2VuZGlmCisgICAgfQogICAgIAogICAgIHZvaWQgY29tcGls
ZVRocm93KCkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRy
aW5zaWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dHJpbnNpYy5jcHAJKHJldmlzaW9uIDIyNDkzMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludHJpbnNpYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwOSw2ICsyMDksMTQgQEAg
Y29uc3QgY2hhciogaW50cmluc2ljTmFtZShJbnRyaW5zaWMgaW50cgogICAgICAgICByZXR1cm4g
IkNoZWNrSW50MzJJbnRyaW5zaWMiOwogICAgIGNhc2UgRmlhdEludDUySW50cmluc2ljOgogICAg
ICAgICByZXR1cm4gIkZpYXRJbnQ1MkludHJpbnNpYyI7CisgICAgY2FzZSBDUFVNZmVuY2VJbnRy
aW5zaWM6CisgICAgICAgIHJldHVybiAiQ1BVTWZlbmNlSW50cmluc2ljIjsKKyAgICBjYXNlIENQ
VVJkdHNjSW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkNQVVJkdHNjSW50cmluc2ljIjsKKyAg
ICBjYXNlIENQVUNwdWlkSW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkNQVUNwdWlkSW50cmlu
c2ljIjsKKyAgICBjYXNlIENQVVBhdXNlSW50cmluc2ljOgorICAgICAgICByZXR1cm4gIkNQVVBh
dXNlSW50cmluc2ljIjsKICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICByZXR1cm4gbnVsbHB0cjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludHJpbnNpYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludHJpbnNpYy5oCShyZXZpc2lvbiAyMjQ5MzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRyaW5zaWMuaAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDYgKzEyMiwxMiBAQCBl
bnVtIEludHJpbnNpYyB7CiAgICAgU2V0SW50MzJIZWFwUHJlZGljdGlvbkludHJpbnNpYywKICAg
ICBDaGVja0ludDMySW50cmluc2ljLAogICAgIEZpYXRJbnQ1MkludHJpbnNpYywKKworICAgIC8v
IFRoZXNlIGFyZSB1c2VkIGZvciAkdm0gcGVyZm9ybWFuY2UgZGVidWdnaW5nIGZlYXR1cmVzLgor
ICAgIENQVU1mZW5jZUludHJpbnNpYywKKyAgICBDUFVSZHRzY0ludHJpbnNpYywKKyAgICBDUFVD
cHVpZEludHJpbnNpYywKKyAgICBDUFVQYXVzZUludHJpbnNpYywKIH07CiAKIGNvbnN0IGNoYXIq
IGludHJpbnNpY05hbWUoSW50cmluc2ljKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
b29scy9KU0RvbGxhclZNLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dG9vbHMvSlNEb2xsYXJWTS5jcHAJKHJldmlzaW9uIDIyNDkzMCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsOCArMjgs
MTAgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkZ1bmN0aW9uQ29kZUJs
b2NrLmgiCisjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKICNpbmNsdWRlICJWTUluc3BlY3Rvci5oIgorI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAj
aW5jbHVkZSA8d3RmL0RhdGFMb2cuaD4KICNpbmNsdWRlIDx3dGYvUHJvY2Vzc0lELmg+CiAjaW5j
bHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CkBAIC01OSw2ICs2MSw5NyBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc0Jvb2xlYW4oZmFsc2UpKTsKIH0KIAorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25DcHVNZmVuY2UoRXhlY1N0YXRlKikKK3sKKyNpZiBDUFUoWDg2XzY0
KSAmJiAhT1MoV0lORE9XUykKKyAgICBhc20gdm9sYXRpbGUoIm1mZW5jZSIgOjo6ICJtZW1vcnki
KTsKKyNlbmRpZgorICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cit9
CisKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3B1UmR0c2Mo
RXhlY1N0YXRlKikKK3sKKyNpZiBDUFUoWDg2XzY0KSAmJiAhT1MoV0lORE9XUykKKyAgICB1bnNp
Z25lZCBoaWdoOworICAgIHVuc2lnbmVkIGxvdzsKKyAgICBhc20gdm9sYXRpbGUgKCJyZHRzYyIg
OiAiPWEiKGxvdyksICI9ZCIoaGlnaCkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
dW1iZXIobG93KSk7CisjZWxzZQorICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIo
MCkpOworI2VuZGlmCit9CisKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uQ3B1Q3B1aWQoRXhlY1N0YXRlKikKK3sKKyNpZiBDUFUoWDg2XzY0KSAmJiAhT1MoV0lO
RE9XUykKKyAgICBXVEY6Ong4Nl9jcHVpZCgpOworI2VuZGlmCisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKK30KKworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25DcHVQYXVzZShFeGVjU3RhdGUqKQoreworI2lmIENQVShYODZfNjQp
ICYmICFPUyhXSU5ET1dTKQorICAgIGFzbSB2b2xhdGlsZSAoInBhdXNlIiA6OjogIm1lbW9yeSIp
OworI2VuZGlmCisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKK30K
KworLy8gVGhpcyB0YWtlcyBlaXRoZXIgYSBKU0FycmF5QnVmZmVyLCBKU0FycmF5QnVmZmVyVmll
dyosIG9yIGFueSBvdGhlciBvYmplY3QgYXMgaXRzIGZpcnN0CisvLyBhcmd1bWVudC4gVGhlIHNl
Y29uZCBhcmd1bWVudCBpcyBleHBlY3RlZCB0byBiZSBhbiBpbnRlZ2VyLgorLy8KKy8vIElmIHRo
ZSBmaXJzdCBhcmd1bWVudCBpcyBhIEpTQXJyYXlCdWZmZXIsIGl0J2xsIGNsZmx1c2ggb24gdGhh
dCBidWZmZXIKKy8vIHBsdXMgdGhlIHNlY29uZCBhcmd1bWVudCBhcyBhIGJ5dGUgb2Zmc2V0LiBJ
dCdsbCBhbHNvIGZsdXNoIG9uIHRoZSBvYmplY3QKKy8vIGl0c2VsZiBzbyBpdHMgbGVuZ3RoLCBl
dGMsIGFyZW4ndCBpbiB0aGUgY2FjaGUuCisvLworLy8gSWYgdGhlIGZpcnN0IGFyZ3VtZW50IGlz
IG5vdCBhIEpTQXJyYXlCdWZmZXIsIHdlIGxvYWQgdGhlIGJ1dHRlcmZseQorLy8gYW5kIGNsZmx1
c2ggYXQgdGhlIGFkZHJlc3Mgb2YgdGhlIGJ1dHRlcmZseS4KK3N0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3B1Q2xmbHVzaChFeGVjU3RhdGUqIGV4ZWMpCit7Cisj
aWYgQ1BVKFg4Nl82NCkgJiYgIU9TKFdJTkRPV1MpCisgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsK
KworICAgIGlmICghZXhlYy0+YXJndW1lbnQoMSkuaXNJbnQzMigpKQorICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihmYWxzZSkpOworCisgICAgYXV0byBjbGZsdXNoID0g
W10gKHZvaWQqIHB0cikgeworICAgICAgICBjaGFyKiBwdHJUb0ZsdXNoID0gc3RhdGljX2Nhc3Q8
Y2hhcio+KHB0cik7CisgICAgICAgIGFzbSB2b2xhdGlsZSAoImNsZmx1c2ggJTAiIDo6ICJtIigq
cHRyVG9GbHVzaCkgOiAibWVtb3J5Iik7CisgICAgfTsKKworICAgIHVpbnQzMl90IG9mZnNldCA9
IGV4ZWMtPmFyZ3VtZW50KDEpLmFzVUludDMyKCk7CisKKyAgICBjaGFyKiBwdHIgPSBudWxscHRy
OworICAgIGlmIChKU0FycmF5QnVmZmVyKiBidWZmZXIgPSBqc0R5bmFtaWNDYXN0PEpTQXJyYXlC
dWZmZXIqPih2bSwgZXhlYy0+YXJndW1lbnQoMCkpKSB7CisgICAgICAgIGlmIChBcnJheUJ1ZmZl
ciogaW1wbCA9IGJ1ZmZlci0+aW1wbCgpKSB7CisgICAgICAgICAgICBpZiAob2Zmc2V0IDwgaW1w
bC0+Ynl0ZUxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgY2xmbHVzaChpbXBsKTsKKyAgICAg
ICAgICAgICAgICBwdHIgPSBiaXR3aXNlX2Nhc3Q8Y2hhcio+KGltcGwpICsgb2Zmc2V0OworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgfSBlbHNlIGlmIChKU0FycmF5QnVmZmVyVmlldyog
dmlldyA9IGpzRHluYW1pY0Nhc3Q8SlNBcnJheUJ1ZmZlclZpZXcqPih2bSwgZXhlYy0+YXJndW1l
bnQoMCkpKQorICAgICAgICBwdHIgPSBiaXR3aXNlX2Nhc3Q8Y2hhcio+KHZpZXcpOworICAgIGVs
c2UgaWYgKEpTT2JqZWN0KiBvYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTT2JqZWN0Kj4odm0sIGV4
ZWMtPmFyZ3VtZW50KDApKSkgeworICAgICAgICBzd2l0Y2ggKG9iamVjdC0+aW5kZXhpbmdUeXBl
KCkpIHsKKyAgICAgICAgY2FzZSBBTExfSU5UMzJfSU5ERVhJTkdfVFlQRVM6CisgICAgICAgIGNh
c2UgQUxMX0NPTlRJR1VPVVNfSU5ERVhJTkdfVFlQRVM6CisgICAgICAgIGNhc2UgQUxMX0RPVUJM
RV9JTkRFWElOR19UWVBFUzoKKyAgICAgICAgICAgIGNsZmx1c2gob2JqZWN0KTsKKyAgICAgICAg
ICAgIHB0ciA9IGJpdHdpc2VfY2FzdDxjaGFyKj4ob2JqZWN0LT5idXR0ZXJmbHkoKSkgKyBvZmZz
ZXQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIXB0cikKKyAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZmFsc2UpKTsKKworICAgIGNsZmx1c2gocHRyKTsKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbih0cnVlKSk7CisjZWxzZQorICAgIFVO
VVNFRF9QQVJBTShleGVjKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihm
YWxzZSkpOworI2VuZGlmCit9CisKIGNsYXNzIENhbGxlckZyYW1lSklUVHlwZUZ1bmN0b3Igewog
cHVibGljOgogICAgIENhbGxlckZyYW1lSklUVHlwZUZ1bmN0b3IoKQpAQCAtMjcwLDYgKzM2Mywx
MiBAQCB2b2lkIEpTRG9sbGFyVk06OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgCiAgICAgYWRkRnVu
Y3Rpb24odm0sIGdsb2JhbE9iamVjdCwgImNyYXNoIiwgZnVuY3Rpb25DcmFzaCwgMCk7CiAgICAg
CiAgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZygmdm0sICJkZmdUcnVlIiksIDAsIGZ1bmN0aW9uREZHVHJ1ZSwgREZHVHJ1
ZUludHJpbnNpYywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSkpOworCisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJjcHVNZmVuY2UiKSwgMCwgZnVuY3Rpb25DcHVN
ZmVuY2UsIENQVU1mZW5jZUludHJpbnNpYywgMCk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rp
b24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJjcHVSZHRz
YyIpLCAwLCBmdW5jdGlvbkNwdVJkdHNjLCBDUFVSZHRzY0ludHJpbnNpYywgMCk7CisgICAgcHV0
RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZygmdm0sICJjcHVDcHVpZCIpLCAwLCBmdW5jdGlvbkNwdUNwdWlkLCBDUFVDcHVpZEludHJp
bnNpYywgMCk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJjcHVQYXVzZSIpLCAwLCBmdW5jdGlvbkNwdVBh
dXNlLCBDUFVQYXVzZUludHJpbnNpYywgMCk7CisgICAgYWRkRnVuY3Rpb24odm0sIGdsb2JhbE9i
amVjdCwgImNwdUNsZmx1c2giLCBmdW5jdGlvbkNwdUNsZmx1c2gsIDIpOwogICAgIAogICAgIGFk
ZEZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsICJsbGludFRydWUiLCBmdW5jdGlvbkxMaW50VHJ1
ZSwgMCk7CiAgICAgYWRkRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgImppdFRydWUiLCBmdW5j
dGlvbkpJVFRydWUsIDApOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>