<?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>138252</bug_id>
          
          <creation_ts>2014-10-31 11:05:42 -0700</creation_ts>
          <short_desc>Add scope operand to op_push_with_scope, op_push_name_scope and op_pop_scope</short_desc>
          <delta_ts>2014-10-31 14:27:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>136724</blocked>
    
    <blocked>138254</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>buildbot</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1045307</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-10-31 11:05:42 -0700</bug_when>
    <thetext>This is part of the effort to remove the scope chain from the call frame header (https://bugs.webkit.org/show_bug.cgi?id=136724).

This bug is to add a source scope register index to the op_push_with_scope, op_push_name_scope and op_pop_scope byte codes.  The new operand will be filled in but not used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045316</commentid>
    <comment_count>1</comment_count>
      <attachid>240746</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-10-31 11:23:54 -0700</bug_when>
    <thetext>Created attachment 240746
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045327</commentid>
    <comment_count>2</comment_count>
      <attachid>240746</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-10-31 11:37:44 -0700</bug_when>
    <thetext>Comment on attachment 240746
Patch

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

&gt; Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp:2199
&gt; +void BytecodeGenerator::emitComplexPopScopes(RegisterID* scopeReg, ControlFlowContext* topScope, ControlFlowContext* bottomScope)

Let&apos;s call this &quot;scope&quot;, or, if we need to disambiguate from something else named &quot;scope&quot;, then &quot;scopeRegister&quot;.

&gt; Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp:2314
&gt; +void BytecodeGenerator::emitPopScopes(RegisterID* scopeReg, int targetScopeDepth)

Ditto.

&gt; Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h:543
&gt; +        void emitPopScope(RegisterID* scopeReg);

This should be &quot;srcDst&quot; to match other functions&apos; naming.

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:2253
&gt; +    RegisterID scopeDest(JSStack::ScopeChain);

Let&apos;s make the scope register a data member in the BytecodeGenerator instead of a one-off allocation at the call site. It&apos;s not really valid to allocate bytecode registers in this way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045353</commentid>
    <comment_count>3</comment_count>
      <attachid>240749</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-10-31 12:46:01 -0700</bug_when>
    <thetext>Created attachment 240749
Patch with suggested updates</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045357</commentid>
    <comment_count>4</comment_count>
      <attachid>240749</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-10-31 13:29:03 -0700</bug_when>
    <thetext>Comment on attachment 240749
Patch with suggested updates

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045380</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2014-10-31 14:27:03 -0700</bug_when>
    <thetext>Committed r175426: &lt;http://trac.webkit.org/changeset/175426&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240746</attachid>
            <date>2014-10-31 11:23:54 -0700</date>
            <delta_ts>2014-10-31 12:46:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>138252.patch</filename>
            <type>text/plain</type>
            <size>19230</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc1NDExKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBA
CisyMDE0LTEwLTMxICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBzY29wZSBvcGVyYW5kIHRvIG9wX3B1c2hfd2l0aF9zY29wZSwgb3BfcHVzaF9uYW1l
X3Njb3BlIGFuZCBvcF9wb3Bfc2NvcGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzODI1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGVkIHNjb3BlIG9wZXJhbmQgdG8gb3BfcHVzaF93aXRoX3Njb3Bl
LCBvcF9wdXNoX25hbWVfc2NvcGUgYW5kIG9wX3BvcF9zY29wZS4KKyAgICAgICAgQWx0aG91Z2gg
dGhlIHNjb3BlIHJlZ2lzdGVyIGlzIGZpbGxlZCBpbiB3aXRoIHRoZSBTY29wZUNoYWluIHJlZ2lz
dGVyIGZvciBhbGwgCisgICAgICAgIHRocmVlIGJ5dGVjb2RlcywgdGhpcyBvcGVyYW5kIGlzIG5v
dCB1c2VkIGluIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSBieXRlY29kZXMuCisgICAgICAgIFRoYXQg
d2lsbCBiZSBhZGRyZXNzZWQgaW4gYSBmdXR1cmUgcGF0Y2guCisKKyAgICAgICAgKiBieXRlY29k
ZS9CeXRlY29kZUxpc3QuanNvbjogTGVuZ3RoZW5lZCB0aGUgdGhyZWUgYnl0ZWNvZGVzLgorICAg
ICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6
ZHVtcEJ5dGVjb2RlKTogQWRkZWQgY29kZSB0byBkdW1wIHRoZSBzY29wZSBvcGVyYW5kLgorICAg
ICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6
OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHVzaFdpdGhTY29wZSk6CisgICAgICAgIChKU0M6OkJ5
dGVjb2RlR2VuZXJhdG9yOjplbWl0UG9wU2NvcGUpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdl
bmVyYXRvcjo6ZW1pdENvbXBsZXhQb3BTY29wZXMpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdl
bmVyYXRvcjo6ZW1pdFBvcFNjb3Blcyk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9y
OjplbWl0UHVzaEZ1bmN0aW9uTmFtZVNjb3BlKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXRQdXNoQ2F0Y2hTY29wZSk6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmg6CisgICAgICAgIEFkZGVkIHNjb3BlIHJlZ2lzdGVyIHRvIHRoZXNlIGVt
aXQgZnVuY3Rpb25zIGFuZCB0aGUgYnl0ZWNvZGVzIHRoZXkgZW1pdC4KKworICAgICAgICAqIGJ5
dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjpDb250aW51ZU5vZGU6
OmVtaXRCeXRlY29kZSk6CisgICAgICAgIChKU0M6OkJyZWFrTm9kZTo6ZW1pdEJ5dGVjb2RlKToK
KyAgICAgICAgKEpTQzo6UmV0dXJuTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6
V2l0aE5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgIChKU0M6OlRyeU5vZGU6OmVtaXRCeXRl
Y29kZSk6CisgICAgICAgIENyZWF0ZWQgYSBSZWdpc3RlcklEIGZvciB0aGUgU2NvcGVDaGFpbiBy
ZWdpc3RlciBhbmQgdXNlZCBpdCB0byBlbWl0IHRoZSB1cGRhdGVkCisgICAgICAgIGJ5dGVjb2Rl
cy4KKworICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpl
bWl0X29wX3B1c2hfd2l0aF9zY29wZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXNo
X25hbWVfc2NvcGUpOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHVzaF93aXRoX3Njb3BlKToKKyAgICAgICAgKEpTQzo6SklU
OjplbWl0X29wX3B1c2hfbmFtZV9zY29wZSk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0
aHMuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgorICAg
ICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorICAgICAgICBVcGRhdGVkIHRo
ZSBvcGVyYW5kIGluZGVjaWVzIGZvciB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdXBkYXRlZCBieXRl
Y29kZXMuCisKIDIwMTQtMTAtMzEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBGaXggYSBjb3VwbGUgb2Ygd2FybmluZ3MgaW4gSlNDIHJlcG9ydGVkIGJ5IGNsYW5n
IHN0YXRpYyBhbmFseXplcgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5
dGVjb2RlTGlzdC5qc29uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9CeXRlY29kZUxpc3QuanNvbgkocmV2aXNpb24gMTc1NDA5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDcsOSArMTA3LDkgQEAKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3Jlc29sdmVfc2NvcGUi
LCAibGVuZ3RoIiA6IDYgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2dldF9mcm9tX3Nj
b3BlIiwgImxlbmd0aCIgOiA4IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9wdXRfdG9f
c2NvcGUiLCAibGVuZ3RoIiA6IDcgfSwKLSAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3B1c2hf
d2l0aF9zY29wZSIsICJsZW5ndGgiIDogMiB9LAotICAgICAgICAgICAgeyAibmFtZSIgOiAib3Bf
cG9wX3Njb3BlIiwgImxlbmd0aCIgOiAxIH0sCi0gICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9w
dXNoX25hbWVfc2NvcGUiLCAibGVuZ3RoIiA6IDUgfSwKKyAgICAgICAgICAgIHsgIm5hbWUiIDog
Im9wX3B1c2hfd2l0aF9zY29wZSIsICJsZW5ndGgiIDogMyB9LAorICAgICAgICAgICAgeyAibmFt
ZSIgOiAib3BfcG9wX3Njb3BlIiwgImxlbmd0aCIgOiAyIH0sCisgICAgICAgICAgICB7ICJuYW1l
IiA6ICJvcF9wdXNoX25hbWVfc2NvcGUiLCAibGVuZ3RoIiA6IDYgfSwKICAgICAgICAgICAgIHsg
Im5hbWUiIDogIm9wX2NhdGNoIiwgImxlbmd0aCIgOiAyIH0sCiAgICAgICAgICAgICB7ICJuYW1l
IiA6ICJvcF90aHJvdyIsICJsZW5ndGgiIDogMiB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAi
b3BfdGhyb3dfc3RhdGljX2Vycm9yIiwgImxlbmd0aCIgOiAzIH0sCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMTc1NDA5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE0MjUsMjEgKzE0MjUsMjUgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29k
ZSgKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHVzaF93
aXRoX3Njb3BlOiB7Ci0gICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKLSAg
ICAgICAgICAgIHByaW50TG9jYXRpb25PcEFuZFJlZ2lzdGVyT3BlcmFuZChvdXQsIGV4ZWMsIGxv
Y2F0aW9uLCBpdCwgInB1c2hfd2l0aF9zY29wZSIsIHIwKTsKKyAgICAgICAgICAgIGludCBkc3Qg
PSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAgICAgICAgIGludCBuZXdTY29wZSA9ICgrK2l0KS0+
dS5vcGVyYW5kOworICAgICAgICAgICAgcHJpbnRMb2NhdGlvbkFuZE9wKG91dCwgZXhlYywgbG9j
YXRpb24sIGl0LCAicHVzaF93aXRoX3Njb3BlIik7CisgICAgICAgICAgICBvdXQucHJpbnRmKCIl
cywgJXMiLCByZWdpc3Rlck5hbWUoZHN0KS5kYXRhKCksIHJlZ2lzdGVyTmFtZShuZXdTY29wZSku
ZGF0YSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bf
cG9wX3Njb3BlOiB7Ci0gICAgICAgICAgICBwcmludExvY2F0aW9uQW5kT3Aob3V0LCBleGVjLCBs
b2NhdGlvbiwgaXQsICJwb3Bfc2NvcGUiKTsKKyAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+
dS5vcGVyYW5kOworICAgICAgICAgICAgcHJpbnRMb2NhdGlvbk9wQW5kUmVnaXN0ZXJPcGVyYW5k
KG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAicG9wX3Njb3BlIiwgcjApOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wdXNoX25hbWVfc2NvcGU6IHsKKyAg
ICAgICAgICAgIGludCBkc3QgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBp
ZDAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5v
cGVyYW5kOwogICAgICAgICAgICAgdW5zaWduZWQgYXR0cmlidXRlcyA9ICgrK2l0KS0+dS5vcGVy
YW5kOwogICAgICAgICAgICAgSlNOYW1lU2NvcGU6OlR5cGUgc2NvcGVUeXBlID0gKEpTTmFtZVNj
b3BlOjpUeXBlKSgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgcHJpbnRMb2NhdGlvbkFu
ZE9wKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAicHVzaF9uYW1lX3Njb3BlIik7Ci0gICAgICAg
ICAgICBvdXQucHJpbnRmKCIlcywgJXMsICV1ICVzIiwgaWROYW1lKGlkMCwgaWRlbnRpZmllcihp
ZDApKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMSkuZGF0YSgpLCBhdHRyaWJ1dGVzLCAoc2NvcGVU
eXBlID09IEpTTmFtZVNjb3BlOjpGdW5jdGlvbk5hbWVTY29wZSkgPyAiZnVuY3Rpb25TY29wZSIg
OiAoKHNjb3BlVHlwZSA9PSBKU05hbWVTY29wZTo6Q2F0Y2hTY29wZSkgPyAiY2F0Y2hTY29wZSIg
OiAidW5rbm93blNjb3BlVHlwZSIpKTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIiVzLCAlcywg
JXMsICV1ICVzIiwgcmVnaXN0ZXJOYW1lKGRzdCkuZGF0YSgpLCBpZE5hbWUoaWQwLCBpZGVudGlm
aWVyKGlkMCkpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKHIxKS5kYXRhKCksIGF0dHJpYnV0ZXMsIChz
Y29wZVR5cGUgPT0gSlNOYW1lU2NvcGU6OkZ1bmN0aW9uTmFtZVNjb3BlKSA/ICJmdW5jdGlvblNj
b3BlIiA6ICgoc2NvcGVUeXBlID09IEpTTmFtZVNjb3BlOjpDYXRjaFNjb3BlKSA/ICJjYXRjaFNj
b3BlIiA6ICJ1bmtub3duU2NvcGVUeXBlIikpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBvcF9jYXRjaDogewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAJKHJldmlz
aW9uIDE3NTQwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDQ5LDIyICsyMDQ5LDIzIEBAIHZv
aWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRUb1ByaW1pdGl2ZSgKICAgICBpbnN0cnVjdGlvbnMo
KS5hcHBlbmQoc3JjLT5pbmRleCgpKTsKIH0KIAotUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0
b3I6OmVtaXRQdXNoV2l0aFNjb3BlKFJlZ2lzdGVySUQqIHNjb3BlKQorUmVnaXN0ZXJJRCogQnl0
ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXNoV2l0aFNjb3BlKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0
ZXJJRCogc2NvcGUpCiB7CiAgICAgQ29udHJvbEZsb3dDb250ZXh0IGNvbnRleHQ7CiAgICAgY29u
dGV4dC5pc0ZpbmFsbHlCbG9jayA9IGZhbHNlOwogICAgIG1fc2NvcGVDb250ZXh0U3RhY2suYXBw
ZW5kKGNvbnRleHQpOwogICAgIG1fbG9jYWxTY29wZURlcHRoKys7CiAKLSAgICByZXR1cm4gZW1p
dFVuYXJ5Tm9Ec3RPcChvcF9wdXNoX3dpdGhfc2NvcGUsIHNjb3BlKTsKKyAgICByZXR1cm4gZW1p
dFVuYXJ5T3Aob3BfcHVzaF93aXRoX3Njb3BlLCBkc3QsIHNjb3BlKTsKIH0KIAotdm9pZCBCeXRl
Y29kZUdlbmVyYXRvcjo6ZW1pdFBvcFNjb3BlKCkKK3ZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVt
aXRQb3BTY29wZShSZWdpc3RlcklEKiBzY29wZSkKIHsKICAgICBBU1NFUlQobV9zY29wZUNvbnRl
eHRTdGFjay5zaXplKCkpOwogICAgIEFTU0VSVCghbV9zY29wZUNvbnRleHRTdGFjay5sYXN0KCku
aXNGaW5hbGx5QmxvY2spOwogCiAgICAgZW1pdE9wY29kZShvcF9wb3Bfc2NvcGUpOworICAgIGlu
c3RydWN0aW9ucygpLmFwcGVuZChzY29wZS0+aW5kZXgoKSk7CiAKICAgICBtX3Njb3BlQ29udGV4
dFN0YWNrLnJlbW92ZUxhc3QoKTsKICAgICBtX2xvY2FsU2NvcGVEZXB0aC0tOwpAQCAtMjE5NSw3
ICsyMTk2LDcgQEAgTGFiZWxTY29wZVB0ciBCeXRlY29kZUdlbmVyYXRvcjo6Y29udGludQogICAg
IHJldHVybiBMYWJlbFNjb3BlUHRyOjpudWxsKCk7CiB9CiAKLXZvaWQgQnl0ZWNvZGVHZW5lcmF0
b3I6OmVtaXRDb21wbGV4UG9wU2NvcGVzKENvbnRyb2xGbG93Q29udGV4dCogdG9wU2NvcGUsIENv
bnRyb2xGbG93Q29udGV4dCogYm90dG9tU2NvcGUpCit2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjpl
bWl0Q29tcGxleFBvcFNjb3BlcyhSZWdpc3RlcklEKiBzY29wZVJlZywgQ29udHJvbEZsb3dDb250
ZXh0KiB0b3BTY29wZSwgQ29udHJvbEZsb3dDb250ZXh0KiBib3R0b21TY29wZSkKIHsKICAgICB3
aGlsZSAodG9wU2NvcGUgPiBib3R0b21TY29wZSkgewogICAgICAgICAvLyBGaXJzdCB3ZSBjb3Vu
dCB0aGUgbnVtYmVyIG9mIGR5bmFtaWMgc2NvcGVzIHdlIG5lZWQgdG8gcmVtb3ZlIHRvIGdldApA
QCAtMjIxMSw4ICsyMjEyLDEwIEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDb21wbGV4
UG9wU2MKICAgICAgICAgaWYgKG5Ob3JtYWxTY29wZXMpIHsKICAgICAgICAgICAgIC8vIFdlIG5l
ZWQgdG8gcmVtb3ZlIGEgbnVtYmVyIG9mIGR5bmFtaWMgc2NvcGVzIHRvIGdldCB0byB0aGUgbmV4
dAogICAgICAgICAgICAgLy8gZmluYWxseSBibG9jawotICAgICAgICAgICAgd2hpbGUgKG5Ob3Jt
YWxTY29wZXMtLSkKKyAgICAgICAgICAgIHdoaWxlIChuTm9ybWFsU2NvcGVzLS0pIHsKICAgICAg
ICAgICAgICAgICBlbWl0T3Bjb2RlKG9wX3BvcF9zY29wZSk7CisgICAgICAgICAgICAgICAgaW5z
dHJ1Y3Rpb25zKCkuYXBwZW5kKHNjb3BlUmVnLT5pbmRleCgpKTsKKyAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgLy8gSWYgdG9wU2NvcGUgPT0gYm90dG9tU2NvcGUgdGhlbiB0aGVyZSBpc24n
dCBhIGZpbmFsbHkgYmxvY2sgbGVmdCB0byBlbWl0LgogICAgICAgICAgICAgaWYgKHRvcFNjb3Bl
ID09IGJvdHRvbVNjb3BlKQpAQCAtMjMwOCw3ICsyMzExLDcgQEAgdm9pZCBCeXRlY29kZUdlbmVy
YXRvcjo6ZW1pdENvbXBsZXhQb3BTYwogICAgIH0KIH0KIAotdm9pZCBCeXRlY29kZUdlbmVyYXRv
cjo6ZW1pdFBvcFNjb3BlcyhpbnQgdGFyZ2V0U2NvcGVEZXB0aCkKK3ZvaWQgQnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXRQb3BTY29wZXMoUmVnaXN0ZXJJRCogc2NvcGVSZWcsIGludCB0YXJnZXRTY29w
ZURlcHRoKQogewogICAgIEFTU0VSVChzY29wZURlcHRoKCkgLSB0YXJnZXRTY29wZURlcHRoID49
IDApOwogCkBAIC0yMzE4LDEyICsyMzIxLDE0IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVt
aXRQb3BTY29wZXMoaW4KICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFtX2ZpbmFsbHlEZXB0
aCkgewotICAgICAgICB3aGlsZSAoc2NvcGVEZWx0YS0tKQorICAgICAgICB3aGlsZSAoc2NvcGVE
ZWx0YS0tKSB7CiAgICAgICAgICAgICBlbWl0T3Bjb2RlKG9wX3BvcF9zY29wZSk7CisgICAgICAg
ICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoc2NvcGVSZWctPmluZGV4KCkpOworICAgICAgICB9
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBlbWl0Q29tcGxleFBvcFNjb3BlcygmbV9z
Y29wZUNvbnRleHRTdGFjay5sYXN0KCksICZtX3Njb3BlQ29udGV4dFN0YWNrLmxhc3QoKSAtIHNj
b3BlRGVsdGEpOworICAgIGVtaXRDb21wbGV4UG9wU2NvcGVzKHNjb3BlUmVnLCAmbV9zY29wZUNv
bnRleHRTdGFjay5sYXN0KCksICZtX3Njb3BlQ29udGV4dFN0YWNrLmxhc3QoKSAtIHNjb3BlRGVs
dGEpOwogfQogCiBUcnlEYXRhKiBCeXRlY29kZUdlbmVyYXRvcjo6cHVzaFRyeShMYWJlbCogc3Rh
cnQpCkBAIC0yMzcxLDE2ICsyMzc2LDE3IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRU
aHJvd1JlZmVyZW4KICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQodHJ1ZSk7CiB9CiAKLXZvaWQg
Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXNoRnVuY3Rpb25OYW1lU2NvcGUoY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHksIFJlZ2lzdGVySUQqIHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQor
dm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1c2hGdW5jdGlvbk5hbWVTY29wZShSZWdpc3Rl
cklEKiBkc3QsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5LCBSZWdpc3RlcklEKiB2YWx1ZSwg
dW5zaWduZWQgYXR0cmlidXRlcykKIHsKICAgICBlbWl0T3Bjb2RlKG9wX3B1c2hfbmFtZV9zY29w
ZSk7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGRzdC0+aW5kZXgoKSk7CiAgICAgaW5zdHJ1
Y3Rpb25zKCkuYXBwZW5kKGFkZENvbnN0YW50KHByb3BlcnR5KSk7CiAgICAgaW5zdHJ1Y3Rpb25z
KCkuYXBwZW5kKHZhbHVlLT5pbmRleCgpKTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoYXR0
cmlidXRlcyk7CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKEpTTmFtZVNjb3BlOjpGdW5jdGlv
bk5hbWVTY29wZSk7CiB9CiAKLXZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXNoQ2F0Y2hT
Y29wZShjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogdmFsdWUsIHVuc2ln
bmVkIGF0dHJpYnV0ZXMpCit2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHVzaENhdGNoU2Nv
cGUoUmVnaXN0ZXJJRCogZHN0LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eSwgUmVnaXN0ZXJJ
RCogdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCiB7CiAgICAgQ29udHJvbEZsb3dDb250ZXh0
IGNvbnRleHQ7CiAgICAgY29udGV4dC5pc0ZpbmFsbHlCbG9jayA9IGZhbHNlOwpAQCAtMjM4OCw2
ICsyMzk0LDcgQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1c2hDYXRjaFNjbwogICAg
IG1fbG9jYWxTY29wZURlcHRoKys7CiAKICAgICBlbWl0T3Bjb2RlKG9wX3B1c2hfbmFtZV9zY29w
ZSk7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGRzdC0+aW5kZXgoKSk7CiAgICAgaW5zdHJ1
Y3Rpb25zKCkuYXBwZW5kKGFkZENvbnN0YW50KHByb3BlcnR5KSk7CiAgICAgaW5zdHJ1Y3Rpb25z
KCkuYXBwZW5kKHZhbHVlLT5pbmRleCgpKTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoYXR0
cmlidXRlcyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCShyZXZpc2lvbiAxNzU0MDkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTUxMCw3ICs1MTAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUGFzc1Jl
ZlB0cjxMYWJlbD4gZW1pdEp1bXBJZkZhbHNlKFJlZ2lzdGVySUQqIGNvbmQsIExhYmVsKiB0YXJn
ZXQpOwogICAgICAgICBQYXNzUmVmUHRyPExhYmVsPiBlbWl0SnVtcElmTm90RnVuY3Rpb25DYWxs
KFJlZ2lzdGVySUQqIGNvbmQsIExhYmVsKiB0YXJnZXQpOwogICAgICAgICBQYXNzUmVmUHRyPExh
YmVsPiBlbWl0SnVtcElmTm90RnVuY3Rpb25BcHBseShSZWdpc3RlcklEKiBjb25kLCBMYWJlbCog
dGFyZ2V0KTsKLSAgICAgICAgdm9pZCBlbWl0UG9wU2NvcGVzKGludCB0YXJnZXRTY29wZURlcHRo
KTsKKyAgICAgICAgdm9pZCBlbWl0UG9wU2NvcGVzKFJlZ2lzdGVySUQqIGRzdCwgaW50IHRhcmdl
dFNjb3BlRGVwdGgpOwogCiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRIYXNJbmRleGVkUHJvcGVy
dHkoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiBwcm9wZXJ0
eU5hbWUpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0SGFzU3RydWN0dXJlUHJvcGVydHkoUmVn
aXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiBwcm9wZXJ0eU5hbWUs
IFJlZ2lzdGVySUQqIGVudW1lcmF0b3IpOwpAQCAtNTM2LDExICs1MzYsMTEgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICAgICAgdm9pZCBlbWl0VGhyb3dSZWZlcmVuY2VFcnJvcihjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpOwogCi0gICAgICAgIHZvaWQgZW1pdFB1c2hGdW5jdGlvbk5hbWVTY29wZShj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogdmFsdWUsIHVuc2lnbmVkIGF0
dHJpYnV0ZXMpOwotICAgICAgICB2b2lkIGVtaXRQdXNoQ2F0Y2hTY29wZShjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpOwor
ICAgICAgICB2b2lkIGVtaXRQdXNoRnVuY3Rpb25OYW1lU2NvcGUoUmVnaXN0ZXJJRCogZHN0LCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogdmFsdWUsIHVuc2lnbmVkIGF0
dHJpYnV0ZXMpOworICAgICAgICB2b2lkIGVtaXRQdXNoQ2F0Y2hTY29wZShSZWdpc3RlcklEKiBk
c3QsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5LCBSZWdpc3RlcklEKiB2YWx1ZSwgdW5zaWdu
ZWQgYXR0cmlidXRlcyk7CiAKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFB1c2hXaXRoU2NvcGUo
UmVnaXN0ZXJJRCogc2NvcGUpOwotICAgICAgICB2b2lkIGVtaXRQb3BTY29wZSgpOworICAgICAg
ICBSZWdpc3RlcklEKiBlbWl0UHVzaFdpdGhTY29wZShSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVy
SUQqIHNjb3BlKTsKKyAgICAgICAgdm9pZCBlbWl0UG9wU2NvcGUoUmVnaXN0ZXJJRCogc2NvcGVS
ZWcpOwogCiAgICAgICAgIHZvaWQgZW1pdERlYnVnSG9vayhEZWJ1Z0hvb2tJRCwgdW5zaWduZWQg
bGluZSwgdW5zaWduZWQgY2hhck9mZnNldCwgdW5zaWduZWQgbGluZVN0YXJ0KTsKIApAQCAtNTkx
LDcgKzU5MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBBTFdBWVNfSU5MSU5FIHZvaWQg
cmV3aW5kQmluYXJ5T3AoKTsKICAgICAgICAgQUxXQVlTX0lOTElORSB2b2lkIHJld2luZFVuYXJ5
T3AoKTsKIAotICAgICAgICB2b2lkIGVtaXRDb21wbGV4UG9wU2NvcGVzKENvbnRyb2xGbG93Q29u
dGV4dCogdG9wU2NvcGUsIENvbnRyb2xGbG93Q29udGV4dCogYm90dG9tU2NvcGUpOworICAgICAg
ICB2b2lkIGVtaXRDb21wbGV4UG9wU2NvcGVzKFJlZ2lzdGVySUQqLCBDb250cm9sRmxvd0NvbnRl
eHQqIHRvcFNjb3BlLCBDb250cm9sRmxvd0NvbnRleHQqIGJvdHRvbVNjb3BlKTsKIAogICAgICAg
ICB0eXBlZGVmIEhhc2hNYXA8ZG91YmxlLCBKU1ZhbHVlPiBOdW1iZXJNYXA7CiAgICAgICAgIHR5
cGVkZWYgSGFzaE1hcDxTdHJpbmdJbXBsKiwgSlNTdHJpbmcqLCBJZGVudGlmaWVyUmVwSGFzaD4g
SWRlbnRpZmllclN0cmluZ01hcDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29t
cGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAJKHJldmlzaW9uIDE3NTQwOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjI1MCw3ICsyMjUwLDggQEAgdm9pZCBDb250aW51ZU5vZGU6OmVtaXRCeXRl
Y29kZShCeXRlY29kZQogICAgIExhYmVsU2NvcGVQdHIgc2NvcGUgPSBnZW5lcmF0b3IuY29udGlu
dWVUYXJnZXQobV9pZGVudCk7CiAgICAgQVNTRVJUKHNjb3BlKTsKIAotICAgIGdlbmVyYXRvci5l
bWl0UG9wU2NvcGVzKHNjb3BlLT5zY29wZURlcHRoKCkpOworICAgIFJlZ2lzdGVySUQgc2NvcGVE
ZXN0KEpTU3RhY2s6OlNjb3BlQ2hhaW4pOworICAgIGdlbmVyYXRvci5lbWl0UG9wU2NvcGVzKCZz
Y29wZURlc3QsIHNjb3BlLT5zY29wZURlcHRoKCkpOwogICAgIGdlbmVyYXRvci5lbWl0SnVtcChz
Y29wZS0+Y29udGludWVUYXJnZXQoKSk7CiB9CiAKQEAgLTIyNzcsNyArMjI3OCw4IEBAIHZvaWQg
QnJlYWtOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW4KICAgICBMYWJlbFNjb3BlUHRyIHNj
b3BlID0gZ2VuZXJhdG9yLmJyZWFrVGFyZ2V0KG1faWRlbnQpOwogICAgIEFTU0VSVChzY29wZSk7
CiAKLSAgICBnZW5lcmF0b3IuZW1pdFBvcFNjb3BlcyhzY29wZS0+c2NvcGVEZXB0aCgpKTsKKyAg
ICBSZWdpc3RlcklEIHNjb3BlRGVzdChKU1N0YWNrOjpTY29wZUNoYWluKTsKKyAgICBnZW5lcmF0
b3IuZW1pdFBvcFNjb3Blcygmc2NvcGVEZXN0LCBzY29wZS0+c2NvcGVEZXB0aCgpKTsKICAgICBn
ZW5lcmF0b3IuZW1pdEp1bXAoc2NvcGUtPmJyZWFrVGFyZ2V0KCkpOwogfQogCkBAIC0yMjk4LDcg
KzIzMDAsOCBAQCB2b2lkIFJldHVybk5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlCiAgICAg
fQogICAgIGlmIChnZW5lcmF0b3Iuc2NvcGVEZXB0aCgpKSB7CiAgICAgICAgIHJldHVyblJlZ2lz
dGVyID0gZ2VuZXJhdG9yLmVtaXRNb3ZlKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgcmV0dXJu
UmVnaXN0ZXIuZ2V0KCkpOwotICAgICAgICBnZW5lcmF0b3IuZW1pdFBvcFNjb3BlcygwKTsKKyAg
ICAgICAgUmVnaXN0ZXJJRCBzY29wZURlc3QoSlNTdGFjazo6U2NvcGVDaGFpbik7CisgICAgICAg
IGdlbmVyYXRvci5lbWl0UG9wU2NvcGVzKCZzY29wZURlc3QsIDApOwogICAgIH0KIAogICAgIGdl
bmVyYXRvci5lbWl0RGVidWdIb29rKFdpbGxMZWF2ZUNhbGxGcmFtZSwgbGFzdExpbmUoKSwgc3Rh
cnRPZmZzZXQoKSwgbGluZVN0YXJ0T2Zmc2V0KCkpOwpAQCAtMjMxMiwxMCArMjMxNSwxMSBAQCB2
b2lkIFdpdGhOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lCiAgICAgZ2VuZXJhdG9yLmVt
aXREZWJ1Z0hvb2soV2lsbEV4ZWN1dGVTdGF0ZW1lbnQsIGZpcnN0TGluZSgpLCBzdGFydE9mZnNl
dCgpLCBsaW5lU3RhcnRPZmZzZXQoKSk7CiAKICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gc2NvcGUg
PSBnZW5lcmF0b3IuZW1pdE5vZGUobV9leHByKTsKKyAgICBSZWdpc3RlcklEIHNjb3BlRGVzdChK
U1N0YWNrOjpTY29wZUNoYWluKTsKICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKG1f
ZGl2b3QsIG1fZGl2b3QgLSBtX2V4cHJlc3Npb25MZW5ndGgsIG1fZGl2b3QpOwotICAgIGdlbmVy
YXRvci5lbWl0UHVzaFdpdGhTY29wZShzY29wZS5nZXQoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQ
dXNoV2l0aFNjb3BlKCZzY29wZURlc3QsIHNjb3BlLmdldCgpKTsKICAgICBnZW5lcmF0b3IuZW1p
dE5vZGUoZHN0LCBtX3N0YXRlbWVudCk7Ci0gICAgZ2VuZXJhdG9yLmVtaXRQb3BTY29wZSgpOwor
ICAgIGdlbmVyYXRvci5lbWl0UG9wU2NvcGUoJnNjb3BlRGVzdCk7CiB9CiAKIC8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDYXNlQ2xhdXNlTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQpAQCAtMjU1NSwxMCArMjU1OSwxMSBAQCB2b2lkIFRyeU5vZGU6OmVtaXRC
eXRlY29kZShCeXRlY29kZUdlbmVyCiAgICAgICAgICAgICAvLyBibG9jayBzaG91bGQgImNhdGNo
IiB0aGF0IGV4Y2VwdGlvbi4KICAgICAgICAgICAgIHRyeURhdGEgPSBnZW5lcmF0b3IucHVzaFRy
eShoZXJlLmdldCgpKTsKICAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgZ2VuZXJhdG9yLmVt
aXRQdXNoQ2F0Y2hTY29wZShtX2V4Y2VwdGlvbklkZW50LCBleGNlcHRpb25SZWdpc3Rlci5nZXQo
KSwgRG9udERlbGV0ZSk7CisKKyAgICAgICAgUmVnaXN0ZXJJRCBzY29wZURlc3QoSlNTdGFjazo6
U2NvcGVDaGFpbik7CisgICAgICAgIGdlbmVyYXRvci5lbWl0UHVzaENhdGNoU2NvcGUoJnNjb3Bl
RGVzdCwgbV9leGNlcHRpb25JZGVudCwgZXhjZXB0aW9uUmVnaXN0ZXIuZ2V0KCksIERvbnREZWxl
dGUpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX2NhdGNoQmxvY2spOwotICAg
ICAgICBnZW5lcmF0b3IuZW1pdFBvcFNjb3BlKCk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0UG9w
U2NvcGUoJnNjb3BlRGVzdCk7CiAgICAgICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoY2F0Y2hFbmRM
YWJlbC5nZXQoKSk7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wY29kZXMzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzMzJfNjQuY3BwCShyZXZpc2lvbiAxNzU0MDkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1Miw3
ICs3NTIsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF90aHJvdyhJbnN0cnVjdGlvbiogY3VyCiAKIHZv
aWQgSklUOjplbWl0X29wX3B1c2hfd2l0aF9zY29wZShJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uKQogewotICAgIGVtaXRMb2FkKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQs
IHJlZ1QxLCByZWdUMCk7CisgICAgZW1pdExvYWQoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3Bl
cmFuZCwgcmVnVDEsIHJlZ1QwKTsKICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1c2hXaXRo
U2NvcGUsIHJlZ1QxLCByZWdUMCk7CiB9CiAKQEAgLTc4Niw4ICs3ODYsOCBAQCB2b2lkIEpJVDo6
ZW1pdFNsb3dfb3BfdG9fbnVtYmVyKEluc3RydWN0CiAKIHZvaWQgSklUOjplbWl0X29wX3B1c2hf
bmFtZV9zY29wZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewotICAgIGVtaXRM
b2FkKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQsIHJlZ1QxLCByZWdUMCk7Ci0gICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXNoTmFtZVNjb3BlLCAmbV9jb2RlQmxvY2stPmlkZW50
aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCksIHJlZ1QxLCByZWdUMCwgY3Vy
cmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCwgY3VycmVudEluc3RydWN0aW9uWzRdLnUub3Bl
cmFuZCk7CisgICAgZW1pdExvYWQoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCwgcmVn
VDEsIHJlZ1QwKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1c2hOYW1lU2NvcGUsICZt
X2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSwg
cmVnVDEsIHJlZ1QwLCBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kLCBjdXJyZW50SW5z
dHJ1Y3Rpb25bNV0udS5vcGVyYW5kKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfY2F0Y2goSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3Bjb2Rlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGNvZGVzLmNwcAkocmV2aXNpb24gMTc1NDA5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQ0LDcgKzQ0NCw3
IEBAIHZvaWQgSklUOjplbWl0X29wX3Rocm93KEluc3RydWN0aW9uKiBjdXIKIAogdm9pZCBKSVQ6
OmVtaXRfb3BfcHVzaF93aXRoX3Njb3BlKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
CiB7Ci0gICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5v
cGVyYW5kLCByZWdUMCk7CisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1
Y3Rpb25bMl0udS5vcGVyYW5kLCByZWdUMCk7CiAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Q
dXNoV2l0aFNjb3BlLCByZWdUMCk7CiB9CiAKQEAgLTUwNiw4ICs1MDYsOCBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF90b19udW1iZXIoSW5zdHJ1Y3Rpb24qCiAKIHZvaWQgSklUOjplbWl0X29wX3B1c2hf
bmFtZV9zY29wZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewotICAgIGVtaXRH
ZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCwgcmVnVDAp
OwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHVzaE5hbWVTY29wZSwgJm1fY29kZUJsb2Nr
LT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCByZWdUMCwgY3Vy
cmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCwgY3VycmVudEluc3RydWN0aW9uWzRdLnUub3Bl
cmFuZCk7CisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bM10u
dS5vcGVyYW5kLCByZWdUMCk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXNoTmFtZVNj
b3BlLCAmbV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3Bl
cmFuZCksIHJlZ1QwLCBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kLCBjdXJyZW50SW5z
dHJ1Y3Rpb25bNV0udS5vcGVyYW5kKTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfY2F0Y2goSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkocmV2aXNpb24gMTc1NDA5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTI2OSwxMCArMTI2OSwxMCBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhf
dG9fcHJpbWl0CiBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcHVzaF93aXRoX3Njb3Bl
KQogewogICAgIExMSU5UX0JFR0lOKCk7Ci0gICAgSlNWYWx1ZSB2ID0gTExJTlRfT1BfQygxKS5q
c1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB2ID0gTExJTlRfT1BfQygyKS5qc1ZhbHVlKCk7CiAgICAg
SlNPYmplY3QqIG8gPSB2LnRvT2JqZWN0KGV4ZWMpOwogICAgIExMSU5UX0NIRUNLX0VYQ0VQVElP
TigpOwotICAgIAorCiAgICAgZXhlYy0+c2V0U2NvcGUoSlNXaXRoU2NvcGU6OmNyZWF0ZShleGVj
LCBvKSk7CiAgICAgCiAgICAgTExJTlRfRU5EKCk7CkBAIC0xMjg5LDggKzEyODksOCBAQCBMTElO
VF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcHVzaF9uYW1lCiB7CiAgICAgTExJTlRfQkVHSU4o
KTsKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV4ZWMtPmNvZGVCbG9jaygpOwotICAgIEpT
TmFtZVNjb3BlOjpUeXBlIHR5cGUgPSBzdGF0aWNfY2FzdDxKU05hbWVTY29wZTo6VHlwZT4ocGNb
NF0udS5vcGVyYW5kKTsKLSAgICBKU05hbWVTY29wZSogc2NvcGUgPSBKU05hbWVTY29wZTo6Y3Jl
YXRlKGV4ZWMsIGNvZGVCbG9jay0+aWRlbnRpZmllcihwY1sxXS51Lm9wZXJhbmQpLCBMTElOVF9P
UCgyKS5qc1ZhbHVlKCksIHBjWzNdLnUub3BlcmFuZCwgdHlwZSk7CisgICAgSlNOYW1lU2NvcGU6
OlR5cGUgdHlwZSA9IHN0YXRpY19jYXN0PEpTTmFtZVNjb3BlOjpUeXBlPihwY1s1XS51Lm9wZXJh
bmQpOworICAgIEpTTmFtZVNjb3BlKiBzY29wZSA9IEpTTmFtZVNjb3BlOjpjcmVhdGUoZXhlYywg
Y29kZUJsb2NrLT5pZGVudGlmaWVyKHBjWzJdLnUub3BlcmFuZCksIExMSU5UX09QKDMpLmpzVmFs
dWUoKSwgcGNbNF0udS5vcGVyYW5kLCB0eXBlKTsKICAgICBleGVjLT5zZXRTY29wZShzY29wZSk7
CiAgICAgTExJTlRfRU5EKCk7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCShyZXZpc2lvbiAxNzU0MDkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHdvcmtp
bmcgY29weSkKQEAgLTEyMzUsMTkgKzEyMzUsMTkgQEAgX2xsaW50X29wX3N0cmNhdDoKIF9sbGlu
dF9vcF9wdXNoX3dpdGhfc2NvcGU6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1c2hfd2l0aF9zY29wZSkKLSAgICBkaXNwYXRjaCgyKQor
ICAgIGRpc3BhdGNoKDMpCiAKIAogX2xsaW50X29wX3BvcF9zY29wZToKICAgICB0cmFjZUV4ZWN1
dGlvbigpCiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcG9wX3Njb3BlKQotICAg
IGRpc3BhdGNoKDEpCisgICAgZGlzcGF0Y2goMikKIAogCiBfbGxpbnRfb3BfcHVzaF9uYW1lX3Nj
b3BlOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9wdXNoX25hbWVfc2NvcGUpCi0gICAgZGlzcGF0Y2goNSkKKyAgICBkaXNwYXRjaCg2KQog
CiAKIF9sbGludF9vcF90aHJvdzoK
</data>
<flag name="review"
          id="265529"
          type_id="1"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240749</attachid>
            <date>2014-10-31 12:46:01 -0700</date>
            <delta_ts>2014-10-31 13:29:03 -0700</delta_ts>
            <desc>Patch with suggested updates</desc>
            <filename>138252-2.patch</filename>
            <type>text/plain</type>
            <size>20799</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc1NDE2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBA
CisyMDE0LTEwLTMxICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBzY29wZSBvcGVyYW5kIHRvIG9wX3B1c2hfd2l0aF9zY29wZSwgb3BfcHVzaF9uYW1l
X3Njb3BlIGFuZCBvcF9wb3Bfc2NvcGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzODI1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGVkIHNjb3BlIG9wZXJhbmQgdG8gb3BfcHVzaF93aXRoX3Njb3Bl
LCBvcF9wdXNoX25hbWVfc2NvcGUgYW5kIG9wX3BvcF9zY29wZS4KKyAgICAgICAgQWx0aG91Z2gg
dGhlIHNjb3BlIHJlZ2lzdGVyIGlzIGZpbGxlZCBpbiB3aXRoIHRoZSBTY29wZUNoYWluIHJlZ2lz
dGVyIGZvciBhbGwgCisgICAgICAgIHRocmVlIGJ5dGVjb2RlcywgdGhpcyBvcGVyYW5kIGlzIG5v
dCB1c2VkIGluIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSBieXRlY29kZXMuCisgICAgICAgIFRoYXQg
d2lsbCBiZSBhZGRyZXNzZWQgaW4gYSBmdXR1cmUgcGF0Y2guCisKKyAgICAgICAgKiBieXRlY29k
ZS9CeXRlY29kZUxpc3QuanNvbjogTGVuZ3RoZW5lZCB0aGUgdGhyZWUgYnl0ZWNvZGVzLgorICAg
ICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6
ZHVtcEJ5dGVjb2RlKTogQWRkZWQgY29kZSB0byBkdW1wIHRoZSBzY29wZSBvcGVyYW5kLgorICAg
ICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6
OkJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkJ5
dGVjb2RlR2VuZXJhdG9yOjplbWl0UHVzaFdpdGhTY29wZSk6CisgICAgICAgIChKU0M6OkJ5dGVj
b2RlR2VuZXJhdG9yOjplbWl0UG9wU2NvcGUpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVy
YXRvcjo6ZW1pdENvbXBsZXhQb3BTY29wZXMpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVy
YXRvcjo6ZW1pdFBvcFNjb3Blcyk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjpl
bWl0UHVzaEZ1bmN0aW9uTmFtZVNjb3BlKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0
b3I6OmVtaXRQdXNoQ2F0Y2hTY29wZSk6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2Rl
R2VuZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjpzY29wZVJlZ2lz
dGVyKToKKyAgICAgICAgQWRkZWQgc2NvcGUgcmVnaXN0ZXIgdG8gdGhlc2UgZW1pdCBmdW5jdGlv
bnMgYW5kIHRoZSBieXRlY29kZXMgdGhleSBlbWl0LgorICAgICAgICBOZXcgbV9zY29wZVJlZ2lz
dGVyIGFuZCBhY2Nlc3Nvci4KKworICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4u
Y3BwOgorICAgICAgICAoSlNDOjpDb250aW51ZU5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAg
IChKU0M6OkJyZWFrTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6UmV0dXJuTm9k
ZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6V2l0aE5vZGU6OmVtaXRCeXRlY29kZSk6
CisgICAgICAgIChKU0M6OlRyeU5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgIENyZWF0ZWQg
YSBSZWdpc3RlcklEIGZvciB0aGUgU2NvcGVDaGFpbiByZWdpc3RlciBhbmQgdXNlZCBpdCB0byBl
bWl0IHRoZSB1cGRhdGVkCisgICAgICAgIGJ5dGVjb2Rlcy4KKworICAgICAgICAqIGppdC9KSVRP
cGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1c2hfd2l0aF9zY29wZSk6
CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXNoX25hbWVfc2NvcGUpOgorICAgICAgICAq
IGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHVz
aF93aXRoX3Njb3BlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1c2hfbmFtZV9zY29w
ZSk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpM
TEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIuYXNtOgorICAgICAgICBVcGRhdGVkIHRoZSBvcGVyYW5kIGluZGVjaWVzIGZvciB0
aGUgcHJvY2Vzc2luZyBvZiB0aGUgdXBkYXRlZCBieXRlY29kZXMuCisKIDIwMTQtMTAtMzEgIEFu
ZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ugd3JpdGVzIHRv
IFJlZ0V4cE9iamVjdC5sYXN0SW5kZXggY2FjaGVhYmxlLgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgkocmV2aXNpb24gMTc1NDA5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDcsOSArMTA3LDkgQEAKICAgICAgICAgICAgIHsgIm5hbWUiIDog
Im9wX3Jlc29sdmVfc2NvcGUiLCAibGVuZ3RoIiA6IDYgfSwKICAgICAgICAgICAgIHsgIm5hbWUi
IDogIm9wX2dldF9mcm9tX3Njb3BlIiwgImxlbmd0aCIgOiA4IH0sCiAgICAgICAgICAgICB7ICJu
YW1lIiA6ICJvcF9wdXRfdG9fc2NvcGUiLCAibGVuZ3RoIiA6IDcgfSwKLSAgICAgICAgICAgIHsg
Im5hbWUiIDogIm9wX3B1c2hfd2l0aF9zY29wZSIsICJsZW5ndGgiIDogMiB9LAotICAgICAgICAg
ICAgeyAibmFtZSIgOiAib3BfcG9wX3Njb3BlIiwgImxlbmd0aCIgOiAxIH0sCi0gICAgICAgICAg
ICB7ICJuYW1lIiA6ICJvcF9wdXNoX25hbWVfc2NvcGUiLCAibGVuZ3RoIiA6IDUgfSwKKyAgICAg
ICAgICAgIHsgIm5hbWUiIDogIm9wX3B1c2hfd2l0aF9zY29wZSIsICJsZW5ndGgiIDogMyB9LAor
ICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfcG9wX3Njb3BlIiwgImxlbmd0aCIgOiAyIH0sCisg
ICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9wdXNoX25hbWVfc2NvcGUiLCAibGVuZ3RoIiA6IDYg
fSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2NhdGNoIiwgImxlbmd0aCIgOiAyIH0sCiAg
ICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF90aHJvdyIsICJsZW5ndGgiIDogMiB9LAogICAgICAg
ICAgICAgeyAibmFtZSIgOiAib3BfdGhyb3dfc3RhdGljX2Vycm9yIiwgImxlbmd0aCIgOiAzIH0s
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAko
cmV2aXNpb24gMTc1NDA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVC
bG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MjUsMjEgKzE0MjUsMjUgQEAgdm9pZCBDb2Rl
QmxvY2s6OmR1bXBCeXRlY29kZSgKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIGNhc2Ugb3BfcHVzaF93aXRoX3Njb3BlOiB7Ci0gICAgICAgICAgICBpbnQgcjAgPSAoKytp
dCktPnUub3BlcmFuZDsKLSAgICAgICAgICAgIHByaW50TG9jYXRpb25PcEFuZFJlZ2lzdGVyT3Bl
cmFuZChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgInB1c2hfd2l0aF9zY29wZSIsIHIwKTsKKyAg
ICAgICAgICAgIGludCBkc3QgPSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAgICAgICAgIGludCBu
ZXdTY29wZSA9ICgrK2l0KS0+dS5vcGVyYW5kOworICAgICAgICAgICAgcHJpbnRMb2NhdGlvbkFu
ZE9wKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAicHVzaF93aXRoX3Njb3BlIik7CisgICAgICAg
ICAgICBvdXQucHJpbnRmKCIlcywgJXMiLCByZWdpc3Rlck5hbWUoZHN0KS5kYXRhKCksIHJlZ2lz
dGVyTmFtZShuZXdTY29wZSkuZGF0YSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgICAgIGNhc2Ugb3BfcG9wX3Njb3BlOiB7Ci0gICAgICAgICAgICBwcmludExvY2F0aW9u
QW5kT3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJwb3Bfc2NvcGUiKTsKKyAgICAgICAgICAg
IGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOworICAgICAgICAgICAgcHJpbnRMb2NhdGlvbk9w
QW5kUmVnaXN0ZXJPcGVyYW5kKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAicG9wX3Njb3BlIiwg
cjApOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wdXNo
X25hbWVfc2NvcGU6IHsKKyAgICAgICAgICAgIGludCBkc3QgPSAoKytpdCktPnUub3BlcmFuZDsK
ICAgICAgICAgICAgIGludCBpZDAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGlu
dCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgdW5zaWduZWQgYXR0cmlidXRl
cyA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgSlNOYW1lU2NvcGU6OlR5cGUgc2Nv
cGVUeXBlID0gKEpTTmFtZVNjb3BlOjpUeXBlKSgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAg
ICAgcHJpbnRMb2NhdGlvbkFuZE9wKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAicHVzaF9uYW1l
X3Njb3BlIik7Ci0gICAgICAgICAgICBvdXQucHJpbnRmKCIlcywgJXMsICV1ICVzIiwgaWROYW1l
KGlkMCwgaWRlbnRpZmllcihpZDApKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMSkuZGF0YSgpLCBh
dHRyaWJ1dGVzLCAoc2NvcGVUeXBlID09IEpTTmFtZVNjb3BlOjpGdW5jdGlvbk5hbWVTY29wZSkg
PyAiZnVuY3Rpb25TY29wZSIgOiAoKHNjb3BlVHlwZSA9PSBKU05hbWVTY29wZTo6Q2F0Y2hTY29w
ZSkgPyAiY2F0Y2hTY29wZSIgOiAidW5rbm93blNjb3BlVHlwZSIpKTsKKyAgICAgICAgICAgIG91
dC5wcmludGYoIiVzLCAlcywgJXMsICV1ICVzIiwgcmVnaXN0ZXJOYW1lKGRzdCkuZGF0YSgpLCBp
ZE5hbWUoaWQwLCBpZGVudGlmaWVyKGlkMCkpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKHIxKS5kYXRh
KCksIGF0dHJpYnV0ZXMsIChzY29wZVR5cGUgPT0gSlNOYW1lU2NvcGU6OkZ1bmN0aW9uTmFtZVNj
b3BlKSA/ICJmdW5jdGlvblNjb3BlIiA6ICgoc2NvcGVUeXBlID09IEpTTmFtZVNjb3BlOjpDYXRj
aFNjb3BlKSA/ICJjYXRjaFNjb3BlIiA6ICJ1bmtub3duU2NvcGVUeXBlIikpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9jYXRjaDogewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5jcHAJKHJldmlzaW9uIDE3NTQwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjQs
NiArMTY0LDcgQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJgogICAg
ICwgbV9zY29wZU5vZGUocHJvZ3JhbU5vZGUpCiAgICAgLCBtX2NvZGVCbG9jayh2bSwgY29kZUJs
b2NrKQogICAgICwgbV90aGlzUmVnaXN0ZXIoQ2FsbEZyYW1lOjp0aGlzQXJndW1lbnRPZmZzZXQo
KSkKKyAgICAsIG1fc2NvcGVSZWdpc3RlcihKU1N0YWNrOjpTY29wZUNoYWluKQogICAgICwgbV9s
ZXhpY2FsRW52aXJvbm1lbnRSZWdpc3RlcigwKQogICAgICwgbV9lbXB0eVZhbHVlUmVnaXN0ZXIo
MCkKICAgICAsIG1fZ2xvYmFsT2JqZWN0UmVnaXN0ZXIoMCkKQEAgLTIwOSw2ICsyMTAsNyBAQCBC
eXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mCiAgICAgLCBtX3N5bWJvbFRh
YmxlKGNvZGVCbG9jay0+c3ltYm9sVGFibGUoKSkKICAgICAsIG1fc2NvcGVOb2RlKGZ1bmN0aW9u
Qm9keSkKICAgICAsIG1fY29kZUJsb2NrKHZtLCBjb2RlQmxvY2spCisgICAgLCBtX3Njb3BlUmVn
aXN0ZXIoSlNTdGFjazo6U2NvcGVDaGFpbikKICAgICAsIG1fbGV4aWNhbEVudmlyb25tZW50UmVn
aXN0ZXIoMCkKICAgICAsIG1fZW1wdHlWYWx1ZVJlZ2lzdGVyKDApCiAgICAgLCBtX2dsb2JhbE9i
amVjdFJlZ2lzdGVyKDApCkBAIC00NDQsNiArNDQ2LDcgQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5
dGVjb2RlR2VuZXJhdG9yKFZNJgogICAgICwgbV9zY29wZU5vZGUoZXZhbE5vZGUpCiAgICAgLCBt
X2NvZGVCbG9jayh2bSwgY29kZUJsb2NrKQogICAgICwgbV90aGlzUmVnaXN0ZXIoQ2FsbEZyYW1l
Ojp0aGlzQXJndW1lbnRPZmZzZXQoKSkKKyAgICAsIG1fc2NvcGVSZWdpc3RlcihKU1N0YWNrOjpT
Y29wZUNoYWluKQogICAgICwgbV9sZXhpY2FsRW52aXJvbm1lbnRSZWdpc3RlcigwKQogICAgICwg
bV9lbXB0eVZhbHVlUmVnaXN0ZXIoMCkKICAgICAsIG1fZ2xvYmFsT2JqZWN0UmVnaXN0ZXIoMCkK
QEAgLTIwNDksMjIgKzIwNTIsMjMgQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFRvUHJp
bWl0aXZlKAogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChzcmMtPmluZGV4KCkpOwogfQogCi1S
ZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1c2hXaXRoU2NvcGUoUmVnaXN0ZXJJ
RCogc2NvcGUpCitSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1c2hXaXRoU2Nv
cGUoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzY29wZSkKIHsKICAgICBDb250cm9sRmxv
d0NvbnRleHQgY29udGV4dDsKICAgICBjb250ZXh0LmlzRmluYWxseUJsb2NrID0gZmFsc2U7CiAg
ICAgbV9zY29wZUNvbnRleHRTdGFjay5hcHBlbmQoY29udGV4dCk7CiAgICAgbV9sb2NhbFNjb3Bl
RGVwdGgrKzsKIAotICAgIHJldHVybiBlbWl0VW5hcnlOb0RzdE9wKG9wX3B1c2hfd2l0aF9zY29w
ZSwgc2NvcGUpOworICAgIHJldHVybiBlbWl0VW5hcnlPcChvcF9wdXNoX3dpdGhfc2NvcGUsIGRz
dCwgc2NvcGUpOwogfQogCi12b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UG9wU2NvcGUoKQor
dm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFBvcFNjb3BlKFJlZ2lzdGVySUQqIHNyY0RzdCkK
IHsKICAgICBBU1NFUlQobV9zY29wZUNvbnRleHRTdGFjay5zaXplKCkpOwogICAgIEFTU0VSVCgh
bV9zY29wZUNvbnRleHRTdGFjay5sYXN0KCkuaXNGaW5hbGx5QmxvY2spOwogCiAgICAgZW1pdE9w
Y29kZShvcF9wb3Bfc2NvcGUpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChzcmNEc3QtPmlu
ZGV4KCkpOwogCiAgICAgbV9zY29wZUNvbnRleHRTdGFjay5yZW1vdmVMYXN0KCk7CiAgICAgbV9s
b2NhbFNjb3BlRGVwdGgtLTsKQEAgLTIxOTUsNyArMjE5OSw3IEBAIExhYmVsU2NvcGVQdHIgQnl0
ZWNvZGVHZW5lcmF0b3I6OmNvbnRpbnUKICAgICByZXR1cm4gTGFiZWxTY29wZVB0cjo6bnVsbCgp
OwogfQogCi12b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q29tcGxleFBvcFNjb3BlcyhDb250
cm9sRmxvd0NvbnRleHQqIHRvcFNjb3BlLCBDb250cm9sRmxvd0NvbnRleHQqIGJvdHRvbVNjb3Bl
KQordm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENvbXBsZXhQb3BTY29wZXMoUmVnaXN0ZXJJ
RCogc2NvcGUsIENvbnRyb2xGbG93Q29udGV4dCogdG9wU2NvcGUsIENvbnRyb2xGbG93Q29udGV4
dCogYm90dG9tU2NvcGUpCiB7CiAgICAgd2hpbGUgKHRvcFNjb3BlID4gYm90dG9tU2NvcGUpIHsK
ICAgICAgICAgLy8gRmlyc3Qgd2UgY291bnQgdGhlIG51bWJlciBvZiBkeW5hbWljIHNjb3BlcyB3
ZSBuZWVkIHRvIHJlbW92ZSB0byBnZXQKQEAgLTIyMTEsOCArMjIxNSwxMCBAQCB2b2lkIEJ5dGVj
b2RlR2VuZXJhdG9yOjplbWl0Q29tcGxleFBvcFNjCiAgICAgICAgIGlmIChuTm9ybWFsU2NvcGVz
KSB7CiAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHJlbW92ZSBhIG51bWJlciBvZiBkeW5hbWlj
IHNjb3BlcyB0byBnZXQgdG8gdGhlIG5leHQKICAgICAgICAgICAgIC8vIGZpbmFsbHkgYmxvY2sK
LSAgICAgICAgICAgIHdoaWxlIChuTm9ybWFsU2NvcGVzLS0pCisgICAgICAgICAgICB3aGlsZSAo
bk5vcm1hbFNjb3Blcy0tKSB7CiAgICAgICAgICAgICAgICAgZW1pdE9wY29kZShvcF9wb3Bfc2Nv
cGUpOworICAgICAgICAgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChzY29wZS0+aW5kZXgo
KSk7CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIElmIHRvcFNjb3BlID09IGJvdHRv
bVNjb3BlIHRoZW4gdGhlcmUgaXNuJ3QgYSBmaW5hbGx5IGJsb2NrIGxlZnQgdG8gZW1pdC4KICAg
ICAgICAgICAgIGlmICh0b3BTY29wZSA9PSBib3R0b21TY29wZSkKQEAgLTIzMDgsNyArMjMxNCw3
IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDb21wbGV4UG9wU2MKICAgICB9CiB9CiAK
LXZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQb3BTY29wZXMoaW50IHRhcmdldFNjb3BlRGVw
dGgpCit2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UG9wU2NvcGVzKFJlZ2lzdGVySUQqIHNj
b3BlLCBpbnQgdGFyZ2V0U2NvcGVEZXB0aCkKIHsKICAgICBBU1NFUlQoc2NvcGVEZXB0aCgpIC0g
dGFyZ2V0U2NvcGVEZXB0aCA+PSAwKTsKIApAQCAtMjMxOCwxMiArMjMyNCwxNCBAQCB2b2lkIEJ5
dGVjb2RlR2VuZXJhdG9yOjplbWl0UG9wU2NvcGVzKGluCiAgICAgICAgIHJldHVybjsKIAogICAg
IGlmICghbV9maW5hbGx5RGVwdGgpIHsKLSAgICAgICAgd2hpbGUgKHNjb3BlRGVsdGEtLSkKKyAg
ICAgICAgd2hpbGUgKHNjb3BlRGVsdGEtLSkgewogICAgICAgICAgICAgZW1pdE9wY29kZShvcF9w
b3Bfc2NvcGUpOworICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHNjb3BlLT5pbmRl
eCgpKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZW1pdENvbXBs
ZXhQb3BTY29wZXMoJm1fc2NvcGVDb250ZXh0U3RhY2subGFzdCgpLCAmbV9zY29wZUNvbnRleHRT
dGFjay5sYXN0KCkgLSBzY29wZURlbHRhKTsKKyAgICBlbWl0Q29tcGxleFBvcFNjb3BlcyhzY29w
ZSwgJm1fc2NvcGVDb250ZXh0U3RhY2subGFzdCgpLCAmbV9zY29wZUNvbnRleHRTdGFjay5sYXN0
KCkgLSBzY29wZURlbHRhKTsKIH0KIAogVHJ5RGF0YSogQnl0ZWNvZGVHZW5lcmF0b3I6OnB1c2hU
cnkoTGFiZWwqIHN0YXJ0KQpAQCAtMjM3MSwxNiArMjM3OSwxNyBAQCB2b2lkIEJ5dGVjb2RlR2Vu
ZXJhdG9yOjplbWl0VGhyb3dSZWZlcmVuCiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHRydWUp
OwogfQogCi12b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHVzaEZ1bmN0aW9uTmFtZVNjb3Bl
KGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5LCBSZWdpc3RlcklEKiB2YWx1ZSwgdW5zaWduZWQg
YXR0cmlidXRlcykKK3ZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXNoRnVuY3Rpb25OYW1l
U2NvcGUoUmVnaXN0ZXJJRCogZHN0LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eSwgUmVnaXN0
ZXJJRCogdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCiB7CiAgICAgZW1pdE9wY29kZShvcF9w
dXNoX25hbWVfc2NvcGUpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChkc3QtPmluZGV4KCkp
OwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChhZGRDb25zdGFudChwcm9wZXJ0eSkpOwogICAg
IGluc3RydWN0aW9ucygpLmFwcGVuZCh2YWx1ZS0+aW5kZXgoKSk7CiAgICAgaW5zdHJ1Y3Rpb25z
KCkuYXBwZW5kKGF0dHJpYnV0ZXMpOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChKU05hbWVT
Y29wZTo6RnVuY3Rpb25OYW1lU2NvcGUpOwogfQogCi12b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjpl
bWl0UHVzaENhdGNoU2NvcGUoY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHksIFJlZ2lzdGVySUQq
IHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQordm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1p
dFB1c2hDYXRjaFNjb3BlKFJlZ2lzdGVySUQqIGRzdCwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHksIFJlZ2lzdGVySUQqIHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQogewogICAgIENvbnRy
b2xGbG93Q29udGV4dCBjb250ZXh0OwogICAgIGNvbnRleHQuaXNGaW5hbGx5QmxvY2sgPSBmYWxz
ZTsKQEAgLTIzODgsNiArMjM5Nyw3IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQdXNo
Q2F0Y2hTY28KICAgICBtX2xvY2FsU2NvcGVEZXB0aCsrOwogCiAgICAgZW1pdE9wY29kZShvcF9w
dXNoX25hbWVfc2NvcGUpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChkc3QtPmluZGV4KCkp
OwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChhZGRDb25zdGFudChwcm9wZXJ0eSkpOwogICAg
IGluc3RydWN0aW9ucygpLmFwcGVuZCh2YWx1ZS0+aW5kZXgoKSk7CiAgICAgaW5zdHJ1Y3Rpb25z
KCkuYXBwZW5kKGF0dHJpYnV0ZXMpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAkocmV2aXNpb24gMTc1NDA5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRv
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yODksNiArMjg5LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAK
ICAgICAgICAgLy8gUmV0dXJucyB0aGUgcmVnaXN0ZXIgc3RvcmluZyAidGhpcyIKICAgICAgICAg
UmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVyKCkgeyByZXR1cm4gJm1fdGhpc1JlZ2lzdGVyOyB9Cisg
ICAgICAgIAorICAgICAgICBSZWdpc3RlcklEKiBzY29wZVJlZ2lzdGVyKCkgeyByZXR1cm4gJm1f
c2NvcGVSZWdpc3RlcjsgfQogCiAgICAgICAgIC8vIFJldHVybnMgdGhlIG5leHQgYXZhaWxhYmxl
IHRlbXBvcmFyeSByZWdpc3Rlci4gUmVnaXN0ZXJzIHJldHVybmVkIGJ5CiAgICAgICAgIC8vIG5l
d1RlbXBvcmFyeSByZXF1aXJlIGEgbW9kaWZpZWQgZm9ybSBvZiByZWZlcmVuY2UgY291bnRpbmc6
IGFueQpAQCAtNTEwLDcgKzUxMiw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBQYXNzUmVm
UHRyPExhYmVsPiBlbWl0SnVtcElmRmFsc2UoUmVnaXN0ZXJJRCogY29uZCwgTGFiZWwqIHRhcmdl
dCk7CiAgICAgICAgIFBhc3NSZWZQdHI8TGFiZWw+IGVtaXRKdW1wSWZOb3RGdW5jdGlvbkNhbGwo
UmVnaXN0ZXJJRCogY29uZCwgTGFiZWwqIHRhcmdldCk7CiAgICAgICAgIFBhc3NSZWZQdHI8TGFi
ZWw+IGVtaXRKdW1wSWZOb3RGdW5jdGlvbkFwcGx5KFJlZ2lzdGVySUQqIGNvbmQsIExhYmVsKiB0
YXJnZXQpOwotICAgICAgICB2b2lkIGVtaXRQb3BTY29wZXMoaW50IHRhcmdldFNjb3BlRGVwdGgp
OworICAgICAgICB2b2lkIGVtaXRQb3BTY29wZXMoUmVnaXN0ZXJJRCogc3JjRHN0LCBpbnQgdGFy
Z2V0U2NvcGVEZXB0aCk7CiAKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEhhc0luZGV4ZWRQcm9w
ZXJ0eShSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIHByb3Bl
cnR5TmFtZSk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRIYXNTdHJ1Y3R1cmVQcm9wZXJ0eShS
ZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIHByb3BlcnR5TmFt
ZSwgUmVnaXN0ZXJJRCogZW51bWVyYXRvcik7CkBAIC01MzYsMTEgKzUzOCwxMSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgICAgICB2b2lkIGVtaXRUaHJvd1JlZmVyZW5jZUVycm9yKGNvbnN0IFN0
cmluZyYgbWVzc2FnZSk7CiAKLSAgICAgICAgdm9pZCBlbWl0UHVzaEZ1bmN0aW9uTmFtZVNjb3Bl
KGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5LCBSZWdpc3RlcklEKiB2YWx1ZSwgdW5zaWduZWQg
YXR0cmlidXRlcyk7Ci0gICAgICAgIHZvaWQgZW1pdFB1c2hDYXRjaFNjb3BlKGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5LCBSZWdpc3RlcklEKiB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcyk7
CisgICAgICAgIHZvaWQgZW1pdFB1c2hGdW5jdGlvbk5hbWVTY29wZShSZWdpc3RlcklEKiBkc3Qs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5LCBSZWdpc3RlcklEKiB2YWx1ZSwgdW5zaWduZWQg
YXR0cmlidXRlcyk7CisgICAgICAgIHZvaWQgZW1pdFB1c2hDYXRjaFNjb3BlKFJlZ2lzdGVySUQq
IGRzdCwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHksIFJlZ2lzdGVySUQqIHZhbHVlLCB1bnNp
Z25lZCBhdHRyaWJ1dGVzKTsKIAotICAgICAgICBSZWdpc3RlcklEKiBlbWl0UHVzaFdpdGhTY29w
ZShSZWdpc3RlcklEKiBzY29wZSk7Ci0gICAgICAgIHZvaWQgZW1pdFBvcFNjb3BlKCk7CisgICAg
ICAgIFJlZ2lzdGVySUQqIGVtaXRQdXNoV2l0aFNjb3BlKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0
ZXJJRCogc2NvcGUpOworICAgICAgICB2b2lkIGVtaXRQb3BTY29wZShSZWdpc3RlcklEKiBzcmNE
c3QpOwogCiAgICAgICAgIHZvaWQgZW1pdERlYnVnSG9vayhEZWJ1Z0hvb2tJRCwgdW5zaWduZWQg
bGluZSwgdW5zaWduZWQgY2hhck9mZnNldCwgdW5zaWduZWQgbGluZVN0YXJ0KTsKIApAQCAtNTkx
LDcgKzU5Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBBTFdBWVNfSU5MSU5FIHZvaWQg
cmV3aW5kQmluYXJ5T3AoKTsKICAgICAgICAgQUxXQVlTX0lOTElORSB2b2lkIHJld2luZFVuYXJ5
T3AoKTsKIAotICAgICAgICB2b2lkIGVtaXRDb21wbGV4UG9wU2NvcGVzKENvbnRyb2xGbG93Q29u
dGV4dCogdG9wU2NvcGUsIENvbnRyb2xGbG93Q29udGV4dCogYm90dG9tU2NvcGUpOworICAgICAg
ICB2b2lkIGVtaXRDb21wbGV4UG9wU2NvcGVzKFJlZ2lzdGVySUQqLCBDb250cm9sRmxvd0NvbnRl
eHQqIHRvcFNjb3BlLCBDb250cm9sRmxvd0NvbnRleHQqIGJvdHRvbVNjb3BlKTsKIAogICAgICAg
ICB0eXBlZGVmIEhhc2hNYXA8ZG91YmxlLCBKU1ZhbHVlPiBOdW1iZXJNYXA7CiAgICAgICAgIHR5
cGVkZWYgSGFzaE1hcDxTdHJpbmdJbXBsKiwgSlNTdHJpbmcqLCBJZGVudGlmaWVyUmVwSGFzaD4g
SWRlbnRpZmllclN0cmluZ01hcDsKQEAgLTc1MSw2ICs3NTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgUmVnaXN0ZXJJRCBtX2lnbm9yZWRSZXN1bHRSZWdpc3RlcjsKICAgICAgICAgUmVn
aXN0ZXJJRCBtX3RoaXNSZWdpc3RlcjsKICAgICAgICAgUmVnaXN0ZXJJRCBtX2NhbGxlZVJlZ2lz
dGVyOworICAgICAgICBSZWdpc3RlcklEIG1fc2NvcGVSZWdpc3RlcjsKICAgICAgICAgUmVnaXN0
ZXJJRCogbV9sZXhpY2FsRW52aXJvbm1lbnRSZWdpc3RlcjsKICAgICAgICAgUmVnaXN0ZXJJRCog
bV9lbXB0eVZhbHVlUmVnaXN0ZXI7CiAgICAgICAgIFJlZ2lzdGVySUQqIG1fZ2xvYmFsT2JqZWN0
UmVnaXN0ZXI7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVz
Q29kZWdlbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21w
aWxlci9Ob2Rlc0NvZGVnZW4uY3BwCShyZXZpc2lvbiAxNzU0MDkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIyNTAsNyArMjI1MCw3IEBAIHZvaWQgQ29udGludWVOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNv
ZGUKICAgICBMYWJlbFNjb3BlUHRyIHNjb3BlID0gZ2VuZXJhdG9yLmNvbnRpbnVlVGFyZ2V0KG1f
aWRlbnQpOwogICAgIEFTU0VSVChzY29wZSk7CiAKLSAgICBnZW5lcmF0b3IuZW1pdFBvcFNjb3Bl
cyhzY29wZS0+c2NvcGVEZXB0aCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdFBvcFNjb3BlcyhnZW5l
cmF0b3Iuc2NvcGVSZWdpc3RlcigpLCBzY29wZS0+c2NvcGVEZXB0aCgpKTsKICAgICBnZW5lcmF0
b3IuZW1pdEp1bXAoc2NvcGUtPmNvbnRpbnVlVGFyZ2V0KCkpOwogfQogCkBAIC0yMjc3LDcgKzIy
NzcsNyBAQCB2b2lkIEJyZWFrTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuCiAgICAgTGFi
ZWxTY29wZVB0ciBzY29wZSA9IGdlbmVyYXRvci5icmVha1RhcmdldChtX2lkZW50KTsKICAgICBB
U1NFUlQoc2NvcGUpOwogCi0gICAgZ2VuZXJhdG9yLmVtaXRQb3BTY29wZXMoc2NvcGUtPnNjb3Bl
RGVwdGgoKSk7CisgICAgZ2VuZXJhdG9yLmVtaXRQb3BTY29wZXMoZ2VuZXJhdG9yLnNjb3BlUmVn
aXN0ZXIoKSwgc2NvcGUtPnNjb3BlRGVwdGgoKSk7CiAgICAgZ2VuZXJhdG9yLmVtaXRKdW1wKHNj
b3BlLT5icmVha1RhcmdldCgpKTsKIH0KIApAQCAtMjI5OCw3ICsyMjk4LDcgQEAgdm9pZCBSZXR1
cm5Ob2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZQogICAgIH0KICAgICBpZiAoZ2VuZXJhdG9y
LnNjb3BlRGVwdGgoKSkgewogICAgICAgICByZXR1cm5SZWdpc3RlciA9IGdlbmVyYXRvci5lbWl0
TW92ZShnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIHJldHVyblJlZ2lzdGVyLmdldCgpKTsKLSAg
ICAgICAgZ2VuZXJhdG9yLmVtaXRQb3BTY29wZXMoMCk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0
UG9wU2NvcGVzKGdlbmVyYXRvci5zY29wZVJlZ2lzdGVyKCksIDApOwogICAgIH0KIAogICAgIGdl
bmVyYXRvci5lbWl0RGVidWdIb29rKFdpbGxMZWF2ZUNhbGxGcmFtZSwgbGFzdExpbmUoKSwgc3Rh
cnRPZmZzZXQoKSwgbGluZVN0YXJ0T2Zmc2V0KCkpOwpAQCAtMjMxMyw5ICsyMzEzLDkgQEAgdm9p
ZCBXaXRoTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZQogCiAgICAgUmVmUHRyPFJlZ2lz
dGVySUQ+IHNjb3BlID0gZ2VuZXJhdG9yLmVtaXROb2RlKG1fZXhwcik7CiAgICAgZ2VuZXJhdG9y
LmVtaXRFeHByZXNzaW9uSW5mbyhtX2Rpdm90LCBtX2Rpdm90IC0gbV9leHByZXNzaW9uTGVuZ3Ro
LCBtX2Rpdm90KTsKLSAgICBnZW5lcmF0b3IuZW1pdFB1c2hXaXRoU2NvcGUoc2NvcGUuZ2V0KCkp
OworICAgIGdlbmVyYXRvci5lbWl0UHVzaFdpdGhTY29wZShnZW5lcmF0b3Iuc2NvcGVSZWdpc3Rl
cigpLCBzY29wZS5nZXQoKSk7CiAgICAgZ2VuZXJhdG9yLmVtaXROb2RlKGRzdCwgbV9zdGF0ZW1l
bnQpOwotICAgIGdlbmVyYXRvci5lbWl0UG9wU2NvcGUoKTsKKyAgICBnZW5lcmF0b3IuZW1pdFBv
cFNjb3BlKGdlbmVyYXRvci5zY29wZVJlZ2lzdGVyKCkpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gQ2FzZUNsYXVzZU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KQEAgLTI1NTUsMTAgKzI1NTUsMTAgQEAgdm9pZCBUcnlOb2RlOjplbWl0Qnl0ZWNv
ZGUoQnl0ZWNvZGVHZW5lcgogICAgICAgICAgICAgLy8gYmxvY2sgc2hvdWxkICJjYXRjaCIgdGhh
dCBleGNlcHRpb24uCiAgICAgICAgICAgICB0cnlEYXRhID0gZ2VuZXJhdG9yLnB1c2hUcnkoaGVy
ZS5nZXQoKSk7CiAgICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGdlbmVyYXRvci5lbWl0UHVz
aENhdGNoU2NvcGUobV9leGNlcHRpb25JZGVudCwgZXhjZXB0aW9uUmVnaXN0ZXIuZ2V0KCksIERv
bnREZWxldGUpOworCisgICAgICAgIGdlbmVyYXRvci5lbWl0UHVzaENhdGNoU2NvcGUoZ2VuZXJh
dG9yLnNjb3BlUmVnaXN0ZXIoKSwgbV9leGNlcHRpb25JZGVudCwgZXhjZXB0aW9uUmVnaXN0ZXIu
Z2V0KCksIERvbnREZWxldGUpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUoZHN0LCBtX2Nh
dGNoQmxvY2spOwotICAgICAgICBnZW5lcmF0b3IuZW1pdFBvcFNjb3BlKCk7CisgICAgICAgIGdl
bmVyYXRvci5lbWl0UG9wU2NvcGUoZ2VuZXJhdG9yLnNjb3BlUmVnaXN0ZXIoKSk7CiAgICAgICAg
IGdlbmVyYXRvci5lbWl0TGFiZWwoY2F0Y2hFbmRMYWJlbC5nZXQoKSk7CiAgICAgfQogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCShyZXZp
c2lvbiAxNzU0MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82
NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1Miw3ICs3NTIsNyBAQCB2b2lkIEpJVDo6ZW1pdF9v
cF90aHJvdyhJbnN0cnVjdGlvbiogY3VyCiAKIHZvaWQgSklUOjplbWl0X29wX3B1c2hfd2l0aF9z
Y29wZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewotICAgIGVtaXRMb2FkKGN1
cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJlZ1QxLCByZWdUMCk7CisgICAgZW1pdExv
YWQoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCwgcmVnVDEsIHJlZ1QwKTsKICAgICBj
YWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1c2hXaXRoU2NvcGUsIHJlZ1QxLCByZWdUMCk7CiB9CiAK
QEAgLTc4Niw4ICs3ODYsOCBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfdG9fbnVtYmVyKEluc3Ry
dWN0CiAKIHZvaWQgSklUOjplbWl0X29wX3B1c2hfbmFtZV9zY29wZShJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uKQogewotICAgIGVtaXRMb2FkKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51
Lm9wZXJhbmQsIHJlZ1QxLCByZWdUMCk7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXNo
TmFtZVNjb3BlLCAmbV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3RydWN0aW9uWzFd
LnUub3BlcmFuZCksIHJlZ1QxLCByZWdUMCwgY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFu
ZCwgY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CisgICAgZW1pdExvYWQoY3VycmVu
dEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCwgcmVnVDEsIHJlZ1QwKTsKKyAgICBjYWxsT3BlcmF0
aW9uKG9wZXJhdGlvblB1c2hOYW1lU2NvcGUsICZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJy
ZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSwgcmVnVDEsIHJlZ1QwLCBjdXJyZW50SW5zdHJ1
Y3Rpb25bNF0udS5vcGVyYW5kLCBjdXJyZW50SW5zdHJ1Y3Rpb25bNV0udS5vcGVyYW5kKTsKIH0K
IAogdm9pZCBKSVQ6OmVtaXRfb3BfY2F0Y2goSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
bikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAkocmV2aXNp
b24gMTc1NDA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDQ0LDcgKzQ0NCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3Rocm93
KEluc3RydWN0aW9uKiBjdXIKIAogdm9pZCBKSVQ6OmVtaXRfb3BfcHVzaF93aXRoX3Njb3BlKElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7Ci0gICAgZW1pdEdldFZpcnR1YWxSZWdp
c3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdUMCk7CisgICAgZW1pdEdl
dFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kLCByZWdUMCk7
CiAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25QdXNoV2l0aFNjb3BlLCByZWdUMCk7CiB9CiAK
QEAgLTUwNiw4ICs1MDYsOCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF90b19udW1iZXIoSW5zdHJ1Y3Rp
b24qCiAKIHZvaWQgSklUOjplbWl0X29wX3B1c2hfbmFtZV9zY29wZShJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uKQogewotICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudElu
c3RydWN0aW9uWzJdLnUub3BlcmFuZCwgcmVnVDApOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0
aW9uUHVzaE5hbWVTY29wZSwgJm1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVj
dGlvblsxXS51Lm9wZXJhbmQpLCByZWdUMCwgY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFu
ZCwgY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CisgICAgZW1pdEdldFZpcnR1YWxS
ZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kLCByZWdUMCk7CisgICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25QdXNoTmFtZVNjb3BlLCAmbV9jb2RlQmxvY2stPmlkZW50aWZp
ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCksIHJlZ1QwLCBjdXJyZW50SW5zdHJ1
Y3Rpb25bNF0udS5vcGVyYW5kLCBjdXJyZW50SW5zdHJ1Y3Rpb25bNV0udS5vcGVyYW5kKTsKIH0K
IAogdm9pZCBKSVQ6OmVtaXRfb3BfY2F0Y2goSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
bikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhz
LmNwcAkocmV2aXNpb24gMTc1NDA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50U2xvd1BhdGhzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI2OSwxMCArMTI2OSwxMCBAQCBM
TElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfdG9fcHJpbWl0CiBMTElOVF9TTE9XX1BBVEhf
REVDTChzbG93X3BhdGhfcHVzaF93aXRoX3Njb3BlKQogewogICAgIExMSU5UX0JFR0lOKCk7Ci0g
ICAgSlNWYWx1ZSB2ID0gTExJTlRfT1BfQygxKS5qc1ZhbHVlKCk7CisgICAgSlNWYWx1ZSB2ID0g
TExJTlRfT1BfQygyKS5qc1ZhbHVlKCk7CiAgICAgSlNPYmplY3QqIG8gPSB2LnRvT2JqZWN0KGV4
ZWMpOwogICAgIExMSU5UX0NIRUNLX0VYQ0VQVElPTigpOwotICAgIAorCiAgICAgZXhlYy0+c2V0
U2NvcGUoSlNXaXRoU2NvcGU6OmNyZWF0ZShleGVjLCBvKSk7CiAgICAgCiAgICAgTExJTlRfRU5E
KCk7CkBAIC0xMjg5LDggKzEyODksOCBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhf
cHVzaF9uYW1lCiB7CiAgICAgTExJTlRfQkVHSU4oKTsKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9j
ayA9IGV4ZWMtPmNvZGVCbG9jaygpOwotICAgIEpTTmFtZVNjb3BlOjpUeXBlIHR5cGUgPSBzdGF0
aWNfY2FzdDxKU05hbWVTY29wZTo6VHlwZT4ocGNbNF0udS5vcGVyYW5kKTsKLSAgICBKU05hbWVT
Y29wZSogc2NvcGUgPSBKU05hbWVTY29wZTo6Y3JlYXRlKGV4ZWMsIGNvZGVCbG9jay0+aWRlbnRp
ZmllcihwY1sxXS51Lm9wZXJhbmQpLCBMTElOVF9PUCgyKS5qc1ZhbHVlKCksIHBjWzNdLnUub3Bl
cmFuZCwgdHlwZSk7CisgICAgSlNOYW1lU2NvcGU6OlR5cGUgdHlwZSA9IHN0YXRpY19jYXN0PEpT
TmFtZVNjb3BlOjpUeXBlPihwY1s1XS51Lm9wZXJhbmQpOworICAgIEpTTmFtZVNjb3BlKiBzY29w
ZSA9IEpTTmFtZVNjb3BlOjpjcmVhdGUoZXhlYywgY29kZUJsb2NrLT5pZGVudGlmaWVyKHBjWzJd
LnUub3BlcmFuZCksIExMSU5UX09QKDMpLmpzVmFsdWUoKSwgcGNbNF0udS5vcGVyYW5kLCB0eXBl
KTsKICAgICBleGVjLT5zZXRTY29wZShzY29wZSk7CiAgICAgTExJTlRfRU5EKCk7CiB9CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuYXNtCShyZXZpc2lvbiAxNzU0MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHdvcmtpbmcgY29weSkKQEAgLTEyMzUsMTkgKzEyMzUs
MTkgQEAgX2xsaW50X29wX3N0cmNhdDoKIF9sbGludF9vcF9wdXNoX3dpdGhfc2NvcGU6CiAgICAg
dHJhY2VFeGVjdXRpb24oKQogICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1c2hf
d2l0aF9zY29wZSkKLSAgICBkaXNwYXRjaCgyKQorICAgIGRpc3BhdGNoKDMpCiAKIAogX2xsaW50
X29wX3BvcF9zY29wZToKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgY2FsbFNsb3dQYXRoKF9s
bGludF9zbG93X3BhdGhfcG9wX3Njb3BlKQotICAgIGRpc3BhdGNoKDEpCisgICAgZGlzcGF0Y2go
MikKIAogCiBfbGxpbnRfb3BfcHVzaF9uYW1lX3Njb3BlOgogICAgIHRyYWNlRXhlY3V0aW9uKCkK
ICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXNoX25hbWVfc2NvcGUpCi0gICAg
ZGlzcGF0Y2goNSkKKyAgICBkaXNwYXRjaCg2KQogCiAKIF9sbGludF9vcF90aHJvdzoK
</data>
<flag name="review"
          id="265535"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>