<?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>152450</bug_id>
          
          <creation_ts>2015-12-18 15:53:57 -0800</creation_ts>
          <short_desc>BytecodeGenerator::pushLexicalScopeInternal and pushLexicalScope should use enums instead of bools</short_desc>
          <delta_ts>2015-12-18 16:20:30 -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></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>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1150420</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-12-18 15:53:57 -0800</bug_when>
    <thetext>This will make the call sites easier to read.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150428</commentid>
    <comment_count>1</comment_count>
      <attachid>267656</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-12-18 16:08:15 -0800</bug_when>
    <thetext>Created attachment 267656
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150429</commentid>
    <comment_count>2</comment_count>
      <attachid>267657</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-12-18 16:10:19 -0800</bug_when>
    <thetext>Created attachment 267657
patch

hopefully this builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150430</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-12-18 16:11:00 -0800</bug_when>
    <thetext>r=me

&gt; Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h:707
&gt; +        enum class TDZCheckOptimization { CanOptimize, CanNotOptimize };

Technically, cannot is one word.

You could do Optimize / DoNotOptimize.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150431</commentid>
    <comment_count>4</comment_count>
      <attachid>267658</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-12-18 16:11:46 -0800</bug_when>
    <thetext>Created attachment 267658
patch

nope, it doesn&apos;t.
Maybe this time?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150432</commentid>
    <comment_count>5</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-12-18 16:12:39 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; r=me
&gt; 
&gt; &gt; Source/JavaScriptCore/bytecompiler/BytecodeGenerator.h:707
&gt; &gt; +        enum class TDZCheckOptimization { CanOptimize, CanNotOptimize };
&gt; 
&gt; Technically, cannot is one word.
&gt; 
&gt; You could do Optimize / DoNotOptimize.

I&apos;ll do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150435</commentid>
    <comment_count>6</comment_count>
      <attachid>267658</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-12-18 16:16:30 -0800</bug_when>
    <thetext>Comment on attachment 267658
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150438</commentid>
    <comment_count>7</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-12-18 16:20:30 -0800</bug_when>
    <thetext>landed in
http://trac.webkit.org/changeset/194304</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267656</attachid>
            <date>2015-12-18 16:08:15 -0800</date>
            <delta_ts>2015-12-18 16:10:19 -0800</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>12732</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0MzAyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBA
CisyMDE1LTEyLTE4ICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEJ5dGVjb2RlR2VuZXJhdG9yOjpwdXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwgYW5kIHB1c2hMZXhp
Y2FsU2NvcGUgc2hvdWxkIHVzZSBlbnVtcyBpbnN0ZWFkIG9mIGJvb2xzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI0NTAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIG1ha2VzIGNvbXByZWhlbmRp
bmcgdGhlIGNhbGwgc2l0ZXMgb2YgdGhlc2UgZnVuY3Rpb25zCisgICAgICAgIGVhc2llciB3aXRo
b3V0IGxvb2tpbmcgdXAgdGhlIGhlYWRlciBvZiB0aGUgZnVuY3Rpb24uCisKKyAgICAgICAgKiBi
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29k
ZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdl
bmVyYXRvcjo6aW5pdGlhbGl6ZURlZmF1bHRQYXJhbWV0ZXJWYWx1ZXNBbmRTZXR1cEZ1bmN0aW9u
U2NvcGVTdGFjayk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjppbml0aWFsaXpl
QXJyb3dGdW5jdGlvbkNvbnRleHRTY29wZUlmTmVlZGVkKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNv
ZGVHZW5lcmF0b3I6OmVtaXRQcmVmaWxsU3RhY2tURFpWYXJpYWJsZXMpOgorICAgICAgICAoSlND
OjpCeXRlY29kZUdlbmVyYXRvcjo6cHVzaExleGljYWxTY29wZSk6CisgICAgICAgIChKU0M6OkJ5
dGVjb2RlR2VuZXJhdG9yOjpwdXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwpOgorICAgICAgICAoSlND
OjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1c2hGdW5jdGlvbk5hbWVTY29wZSk6CisgICAgICAg
IChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHVzaENhdGNoU2NvcGUpOgorICAgICAgICAq
IGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oOgorICAgICAgICAqIGJ5dGVjb21waWxl
ci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjpCbG9ja05vZGU6OmVtaXRCeXRlY29k
ZSk6CisgICAgICAgIChKU0M6OkZvck5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgIChKU0M6
OkZvckluTm9kZTo6ZW1pdE11bHRpTG9vcEJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6Rm9yT2ZO
b2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpTd2l0Y2hOb2RlOjplbWl0Qnl0ZWNv
ZGUpOgorICAgICAgICAoSlNDOjpDbGFzc0V4cHJOb2RlOjplbWl0Qnl0ZWNvZGUpOgorCiAyMDE1
LTEyLTE4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNl
IFNwZWNpYWxGYXN0Q2FzZSBwcm9maWxlcyB3aXRoIFJlc3VsdFByb2ZpbGVzLgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5jcHAJKHJldmlzaW9uIDE5NDMwMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01ODEs
NyArNTgxLDcgQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJgogICAg
ICAgICBlbWl0UHV0RGVyaXZlZENvbnN0cnVjdG9yVG9BcnJvd0Z1bmN0aW9uQ29udGV4dFNjb3Bl
KCk7CiAgICAgfQogCi0gICAgcHVzaExleGljYWxTY29wZShtX3Njb3BlTm9kZSwgdHJ1ZSk7Cisg
ICAgcHVzaExleGljYWxTY29wZShtX3Njb3BlTm9kZSwgVERaQ2hlY2tPcHRpbWl6YXRpb246OkNh
bk9wdGltaXplKTsKIH0KIAogQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZN
JiB2bSwgRXZhbE5vZGUqIGV2YWxOb2RlLCBVbmxpbmtlZEV2YWxDb2RlQmxvY2sqIGNvZGVCbG9j
aywgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlIHByb2ZpbGVyTW9kZSwg
Y29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCogcGFyZW50U2NvcGVURFpWYXJpYWJsZXMpCkBAIC02
MzIsNyArNjMyLDcgQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJgog
ICAgICAgICBlbWl0UHV0VGhpc1RvQXJyb3dGdW5jdGlvbkNvbnRleHRTY29wZSgpOwogICAgIH0K
ICAgICAKLSAgICBwdXNoTGV4aWNhbFNjb3BlKG1fc2NvcGVOb2RlLCB0cnVlKTsKKyAgICBwdXNo
TGV4aWNhbFNjb3BlKG1fc2NvcGVOb2RlLCBURFpDaGVja09wdGltaXphdGlvbjo6Q2FuT3B0aW1p
emUpOwogfQogCiBCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBN
b2R1bGVQcm9ncmFtTm9kZSogbW9kdWxlUHJvZ3JhbU5vZGUsIFVubGlua2VkTW9kdWxlUHJvZ3Jh
bUNvZGVCbG9jayogY29kZUJsb2NrLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQcm9maWxl
ck1vZGUgcHJvZmlsZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50KiBwYXJlbnRTY29w
ZVREWlZhcmlhYmxlcykKQEAgLTgwOSw3ICs4MDksNyBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9y
Ojppbml0aWFsaXplRGVmYXVsCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIFRoaXMg
aW1wbGVtZW50cyBzdGVwIDI1IG9mIHNlY3Rpb24gOS4yLjEyLgotICAgICAgICBwdXNoTGV4aWNh
bFNjb3BlSW50ZXJuYWwoZW52aXJvbm1lbnQsIHRydWUsIGZhbHNlLCBudWxscHRyLCBURFpSZXF1
aXJlbWVudDo6VW5kZXJURFosIFNjb3BlVHlwZTo6TGV0Q29uc3RTY29wZSwgU2NvcGVSZWdpc3Rl
clR5cGU6OkJsb2NrKTsKKyAgICAgICAgcHVzaExleGljYWxTY29wZUludGVybmFsKGVudmlyb25t
ZW50LCBURFpDaGVja09wdGltaXphdGlvbjo6Q2FuT3B0aW1pemUsIE5lc3RlZFNjb3BlVHlwZTo6
SXNOb3ROZXN0ZWQsIG51bGxwdHIsIFREWlJlcXVpcmVtZW50OjpVbmRlclREWiwgU2NvcGVUeXBl
OjpMZXRDb25zdFNjb3BlLCBTY29wZVJlZ2lzdGVyVHlwZTo6QmxvY2spOwogCiAgICAgICAgIFJl
ZlB0cjxSZWdpc3RlcklEPiB0ZW1wID0gbmV3VGVtcG9yYXJ5KCk7CiAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBwYXJhbWV0ZXJzLnNpemUoKTsgaSsrKSB7CkBAIC05MjcsNyArOTI3
LDcgQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6aW5pdGlhbGl6ZUFycm93RgogICAgIH0KIAog
ICAgIHNpemVfdCBzaXplID0gbV9zeW1ib2xUYWJsZVN0YWNrLnNpemUoKTsKLSAgICBwdXNoTGV4
aWNhbFNjb3BlSW50ZXJuYWwoZW52aXJvbm1lbnQsIHRydWUsIGZhbHNlLCBudWxscHRyLCBURFpS
ZXF1aXJlbWVudDo6VW5kZXJURFosIFNjb3BlVHlwZTo6TGV0Q29uc3RTY29wZSwgU2NvcGVSZWdp
c3RlclR5cGU6OkJsb2NrKTsKKyAgICBwdXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwoZW52aXJvbm1l
bnQsIFREWkNoZWNrT3B0aW1pemF0aW9uOjpDYW5PcHRpbWl6ZSwgTmVzdGVkU2NvcGVUeXBlOjpJ
c05vdE5lc3RlZCwgbnVsbHB0ciwgVERaUmVxdWlyZW1lbnQ6OlVuZGVyVERaLCBTY29wZVR5cGU6
OkxldENvbnN0U2NvcGUsIFNjb3BlUmVnaXN0ZXJUeXBlOjpCbG9jayk7CiAKICAgICBBU1NFUlRf
VU5VU0VEKHNpemUsIG1fc3ltYm9sVGFibGVTdGFjay5zaXplKCkgPT0gc2l6ZSArIDEpOwogCkBA
IC0xNzk3LDEzICsxNzk3LDEzIEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQcmVmaWxs
U3RhY2sKICAgICB9CiB9CiAKLXZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OnB1c2hMZXhpY2FsU2Nv
cGUoVmFyaWFibGVFbnZpcm9ubWVudE5vZGUqIG5vZGUsIGJvb2wgY2FuT3B0aW1pemVURFpDaGVj
a3MsIGJvb2wgaXNOZXN0ZWRMZXhpY2FsU2NvcGUsIFJlZ2lzdGVySUQqKiBjb25zdGFudFN5bWJv
bFRhYmxlUmVzdWx0KQordm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6cHVzaExleGljYWxTY29wZShW
YXJpYWJsZUVudmlyb25tZW50Tm9kZSogbm9kZSwgVERaQ2hlY2tPcHRpbWl6YXRpb24gdGR6Q2hl
Y2tPcHRpbWl6YXRpb24sIE5lc3RlZFNjb3BlVHlwZSBuZXN0ZWRTY29wZVR5cGUsIFJlZ2lzdGVy
SUQqKiBjb25zdGFudFN5bWJvbFRhYmxlUmVzdWx0KQogewogICAgIFZhcmlhYmxlRW52aXJvbm1l
bnQmIGVudmlyb25tZW50ID0gbm9kZS0+bGV4aWNhbFZhcmlhYmxlcygpOwotICAgIHB1c2hMZXhp
Y2FsU2NvcGVJbnRlcm5hbChlbnZpcm9ubWVudCwgY2FuT3B0aW1pemVURFpDaGVja3MsIGlzTmVz
dGVkTGV4aWNhbFNjb3BlLCBjb25zdGFudFN5bWJvbFRhYmxlUmVzdWx0LCBURFpSZXF1aXJlbWVu
dDo6VW5kZXJURFosIFNjb3BlVHlwZTo6TGV0Q29uc3RTY29wZSwgU2NvcGVSZWdpc3RlclR5cGU6
OkJsb2NrKTsKKyAgICBwdXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwoZW52aXJvbm1lbnQsIHRkekNo
ZWNrT3B0aW1pemF0aW9uLCBuZXN0ZWRTY29wZVR5cGUsIGNvbnN0YW50U3ltYm9sVGFibGVSZXN1
bHQsIFREWlJlcXVpcmVtZW50OjpVbmRlclREWiwgU2NvcGVUeXBlOjpMZXRDb25zdFNjb3BlLCBT
Y29wZVJlZ2lzdGVyVHlwZTo6QmxvY2spOwogfQogCi12b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjpw
dXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwoVmFyaWFibGVFbnZpcm9ubWVudCYgZW52aXJvbm1lbnQs
IGJvb2wgY2FuT3B0aW1pemVURFpDaGVja3MsIGJvb2wgaXNOZXN0ZWRMZXhpY2FsU2NvcGUsCit2
b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjpwdXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwoVmFyaWFibGVF
bnZpcm9ubWVudCYgZW52aXJvbm1lbnQsIFREWkNoZWNrT3B0aW1pemF0aW9uIHRkekNoZWNrT3B0
aW1pemF0aW9uLCBOZXN0ZWRTY29wZVR5cGUgbmVzdGVkU2NvcGVUeXBlLAogICAgIFJlZ2lzdGVy
SUQqKiBjb25zdGFudFN5bWJvbFRhYmxlUmVzdWx0LCBURFpSZXF1aXJlbWVudCB0ZHpSZXF1aXJl
bWVudCwgU2NvcGVUeXBlIHNjb3BlVHlwZSwgU2NvcGVSZWdpc3RlclR5cGUgc2NvcGVSZWdpc3Rl
clR5cGUpCiB7CiAgICAgaWYgKCFlbnZpcm9ubWVudC5zaXplKCkpCkBAIC0xODI1LDcgKzE4MjUs
NyBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjpwdXNoTGV4aWNhbFNjb3BlCiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIAotICAgIGlmIChpc05lc3RlZExleGljYWxTY29wZSkKKyAgICBpZiAobmVz
dGVkU2NvcGVUeXBlID09IE5lc3RlZFNjb3BlVHlwZTo6SXNOZXN0ZWQpCiAgICAgICAgIHN5bWJv
bFRhYmxlLT5tYXJrSXNOZXN0ZWRMZXhpY2FsU2NvcGUoKTsKIAogICAgIGF1dG8gbG9va1VwVmFy
S2luZCA9IFtdIChVbmlxdWVkU3RyaW5nSW1wbCosIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnRF
bnRyeSYgZW50cnkpIC0+IFZhcktpbmQgewpAQCAtMTg2Nyw2ICsxODY3LDcgQEAgdm9pZCBCeXRl
Y29kZUdlbmVyYXRvcjo6cHVzaExleGljYWxTY29wZQogICAgIH0KIAogICAgIG1fc3ltYm9sVGFi
bGVTdGFjay5hcHBlbmQoU3ltYm9sVGFibGVTdGFja0VudHJ5eyBzeW1ib2xUYWJsZSwgbmV3U2Nv
cGUsIGZhbHNlLCBzeW1ib2xUYWJsZUNvbnN0YW50SW5kZXggfSk7CisgICAgYm9vbCBjYW5PcHRp
bWl6ZVREWkNoZWNrcyA9IHRkekNoZWNrT3B0aW1pemF0aW9uID09IFREWkNoZWNrT3B0aW1pemF0
aW9uOjpDYW5PcHRpbWl6ZTsKICAgICBpZiAodGR6UmVxdWlyZW1lbnQgPT0gVERaUmVxdWlyZW1l
bnQ6OlVuZGVyVERaKQogICAgICAgICBtX1REWlN0YWNrLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihl
bnZpcm9ubWVudCwgY2FuT3B0aW1pemVURFpDaGVja3MpKTsKIApAQCAtMzU2Niw3ICszNTY3LDcg
QEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1c2hGdW5jdGlvbgogICAgICAgICBhZGRS
ZXN1bHQuaXRlcmF0b3ItPnZhbHVlLnNldElzQ2FwdHVyZWQoKTsKICAgICBhZGRSZXN1bHQuaXRl
cmF0b3ItPnZhbHVlLnNldElzQ29uc3QoKTsgLy8gVGhlIGZ1bmN0aW9uIG5hbWUgc2NvcGUgbmFt
ZSBhY3RzIGxpa2UgYSBjb25zdCB2YXJpYWJsZS4KICAgICB1bnNpZ25lZCBudW1WYXJzID0gbV9j
b2RlQmxvY2stPm1fbnVtVmFyczsKLSAgICBwdXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwobmFtZVNj
b3BlRW52aXJvbm1lbnQsIHRydWUsIGZhbHNlLCBudWxscHRyLCBURFpSZXF1aXJlbWVudDo6Tm90
VW5kZXJURFosIFNjb3BlVHlwZTo6RnVuY3Rpb25OYW1lU2NvcGUsIFNjb3BlUmVnaXN0ZXJUeXBl
OjpWYXIpOworICAgIHB1c2hMZXhpY2FsU2NvcGVJbnRlcm5hbChuYW1lU2NvcGVFbnZpcm9ubWVu
dCwgVERaQ2hlY2tPcHRpbWl6YXRpb246OkNhbk9wdGltaXplLCBOZXN0ZWRTY29wZVR5cGU6Oklz
Tm90TmVzdGVkLCBudWxscHRyLCBURFpSZXF1aXJlbWVudDo6Tm90VW5kZXJURFosIFNjb3BlVHlw
ZTo6RnVuY3Rpb25OYW1lU2NvcGUsIFNjb3BlUmVnaXN0ZXJUeXBlOjpWYXIpOwogICAgIEFTU0VS
VF9VTlVTRUQobnVtVmFycywgbV9jb2RlQmxvY2stPm1fbnVtVmFycyA9PSBzdGF0aWNfY2FzdDxp
bnQ+KG51bVZhcnMgKyAxKSk7IC8vIFNob3VsZCBoYXZlIG9ubHkgY3JlYXRlZCBvbmUgbmV3ICJ2
YXIiIGZvciB0aGUgZnVuY3Rpb24gbmFtZSBzY29wZS4KICAgICBib29sIHNob3VsZFRyZWF0QXNM
ZXhpY2FsVmFyaWFibGUgPSBpc1N0cmljdE1vZGUoKTsKICAgICBWYXJpYWJsZSBmdW5jdGlvblZh
ciA9IHZhcmlhYmxlRm9yTG9jYWxFbnRyeShwcm9wZXJ0eSwgbV9zeW1ib2xUYWJsZVN0YWNrLmxh
c3QoKS5tX3N5bWJvbFRhYmxlLT5nZXQocHJvcGVydHkuaW1wbCgpKSwgbV9zeW1ib2xUYWJsZVN0
YWNrLmxhc3QoKS5tX3N5bWJvbFRhYmxlQ29uc3RhbnRJbmRleCwgc2hvdWxkVHJlYXRBc0xleGlj
YWxWYXJpYWJsZSk7CkBAIC0zNTkyLDcgKzM1OTMsNyBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9y
Ojpwb3BTY29wZWRDb250cm9sCiB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHVzaENhdGNo
U2NvcGUoY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHksIFJlZ2lzdGVySUQqIGV4Y2VwdGlvblZh
bHVlLCBWYXJpYWJsZUVudmlyb25tZW50JiBlbnZpcm9ubWVudCkKIHsKICAgICBSRUxFQVNFX0FT
U0VSVChlbnZpcm9ubWVudC5jb250YWlucyhwcm9wZXJ0eS5pbXBsKCkpKTsKLSAgICBwdXNoTGV4
aWNhbFNjb3BlSW50ZXJuYWwoZW52aXJvbm1lbnQsIHRydWUsIGZhbHNlLCBudWxscHRyLCBURFpS
ZXF1aXJlbWVudDo6Tm90VW5kZXJURFosIFNjb3BlVHlwZTo6Q2F0Y2hTY29wZSwgU2NvcGVSZWdp
c3RlclR5cGU6OkJsb2NrKTsKKyAgICBwdXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwoZW52aXJvbm1l
bnQsIFREWkNoZWNrT3B0aW1pemF0aW9uOjpDYW5PcHRpbWl6ZSwgTmVzdGVkU2NvcGVUeXBlOjpJ
c05vdE5lc3RlZCwgbnVsbHB0ciwgVERaUmVxdWlyZW1lbnQ6Ok5vdFVuZGVyVERaLCBTY29wZVR5
cGU6OkNhdGNoU2NvcGUsIFNjb3BlUmVnaXN0ZXJUeXBlOjpCbG9jayk7CiAgICAgVmFyaWFibGUg
ZXhjZXB0aW9uVmFyID0gdmFyaWFibGUocHJvcGVydHkpOwogICAgIFJFTEVBU0VfQVNTRVJUKGV4
Y2VwdGlvblZhci5pc1Jlc29sdmVkKCkpOwogICAgIFJlZlB0cjxSZWdpc3RlcklEPiBzY29wZSA9
IGVtaXRSZXNvbHZlU2NvcGUobnVsbHB0ciwgZXhjZXB0aW9uVmFyKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9y
LmgJKHJldmlzaW9uIDE5NDMwMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNzA0LDcgKzcwNCw5IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBlbnVtIGNsYXNzIFREWlJlcXVpcmVtZW50IHsgVW5k
ZXJURFosIE5vdFVuZGVyVERaIH07CiAgICAgICAgIGVudW0gY2xhc3MgU2NvcGVUeXBlIHsgQ2F0
Y2hTY29wZSwgTGV0Q29uc3RTY29wZSwgRnVuY3Rpb25OYW1lU2NvcGUgfTsKICAgICAgICAgZW51
bSBjbGFzcyBTY29wZVJlZ2lzdGVyVHlwZSB7IFZhciwgQmxvY2sgfTsKLSAgICAgICAgdm9pZCBw
dXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwoVmFyaWFibGVFbnZpcm9ubWVudCYsIGJvb2wgY2FuT3B0
aW1pemVURFpDaGVja3MsIGJvb2wgaXNOZXN0ZWRMZXhpY2FsU2NvcGUsIFJlZ2lzdGVySUQqKiBj
b25zdGFudFN5bWJvbFRhYmxlUmVzdWx0LCBURFpSZXF1aXJlbWVudCwgU2NvcGVUeXBlLCBTY29w
ZVJlZ2lzdGVyVHlwZSk7CisgICAgICAgIGVudW0gY2xhc3MgVERaQ2hlY2tPcHRpbWl6YXRpb24g
eyBDYW5PcHRpbWl6ZSwgQ2FuTm90T3B0aW1pemUgfTsKKyAgICAgICAgZW51bSBjbGFzcyBOZXN0
ZWRTY29wZVR5cGUgeyBJc05lc3RlZCwgSXNOb3ROZXN0ZWQgfTsKKyAgICAgICAgdm9pZCBwdXNo
TGV4aWNhbFNjb3BlSW50ZXJuYWwoVmFyaWFibGVFbnZpcm9ubWVudCYsIFREWkNoZWNrT3B0aW1p
emF0aW9uLCBOZXN0ZWRTY29wZVR5cGUsIFJlZ2lzdGVySUQqKiBjb25zdGFudFN5bWJvbFRhYmxl
UmVzdWx0LCBURFpSZXF1aXJlbWVudCwgU2NvcGVUeXBlLCBTY29wZVJlZ2lzdGVyVHlwZSk7CiAg
ICAgICAgIHZvaWQgcG9wTGV4aWNhbFNjb3BlSW50ZXJuYWwoVmFyaWFibGVFbnZpcm9ubWVudCYs
IFREWlJlcXVpcmVtZW50KTsKICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9va1VwVmFyS2lu
ZEZ1bmN0b3I+CiAgICAgICAgIGJvb2wgaW5zdGFudGlhdGVMZXhpY2FsVmFyaWFibGVzKGNvbnN0
IFZhcmlhYmxlRW52aXJvbm1lbnQmLCBTeW1ib2xUYWJsZSosIFNjb3BlUmVnaXN0ZXJUeXBlLCBM
b29rVXBWYXJLaW5kRnVuY3Rvcik7CkBAIC03MTUsNyArNzE3LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIHZvaWQgZW1pdE5ld0Z1bmN0aW9uRXhwcmVzc2lvbkNvbW1vbihSZWdpc3RlcklE
KiwgQmFzZUZ1bmNFeHByTm9kZSopOwogCiAgICAgcHVibGljOgotICAgICAgICB2b2lkIHB1c2hM
ZXhpY2FsU2NvcGUoVmFyaWFibGVFbnZpcm9ubWVudE5vZGUqLCBib29sIGNhbk9wdGltaXplVERa
Q2hlY2tzLCBib29sIGlzTmVzdGVkTGV4aWNhbFNjb3BlID0gZmFsc2UsIFJlZ2lzdGVySUQqKiBj
b25zdGFudFN5bWJvbFRhYmxlUmVzdWx0ID0gbnVsbHB0cik7CisgICAgICAgIHZvaWQgcHVzaExl
eGljYWxTY29wZShWYXJpYWJsZUVudmlyb25tZW50Tm9kZSosIFREWkNoZWNrT3B0aW1pemF0aW9u
LCBOZXN0ZWRTY29wZVR5cGUgPSBOZXN0ZWRTY29wZVR5cGU6OklzTm90TmVzdGVkLCBSZWdpc3Rl
cklEKiogY29uc3RhbnRTeW1ib2xUYWJsZVJlc3VsdCA9IG51bGxwdHIpOwogICAgICAgICB2b2lk
IHBvcExleGljYWxTY29wZShWYXJpYWJsZUVudmlyb25tZW50Tm9kZSopOwogICAgICAgICB2b2lk
IHByZXBhcmVMZXhpY2FsU2NvcGVGb3JOZXh0Rm9yTG9vcEl0ZXJhdGlvbihWYXJpYWJsZUVudmly
b25tZW50Tm9kZSosIFJlZ2lzdGVySUQqIGxvb3BTeW1ib2xUYWJsZSk7CiAgICAgICAgIGludCBs
YWJlbFNjb3BlRGVwdGgoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAJKHJldmlzaW9uIDE5NDMwMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjA0OSw3ICsyMDQ5LDcgQEAgdm9pZCBCbG9ja05vZGU6OmVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbgogewogICAgIGlmICghbV9zdGF0ZW1lbnRzKQogICAgICAgICByZXR1
cm47Ci0gICAgZ2VuZXJhdG9yLnB1c2hMZXhpY2FsU2NvcGUodGhpcywgdHJ1ZSwgdHJ1ZSk7Cisg
ICAgZ2VuZXJhdG9yLnB1c2hMZXhpY2FsU2NvcGUodGhpcywgVERaQ2hlY2tPcHRpbWl6YXRpb246
OkNhbk9wdGltaXplLCBOZXN0ZWRTY29wZVR5cGU6OklzTmVzdGVkKTsKICAgICBtX3N0YXRlbWVu
dHMtPmVtaXRCeXRlY29kZShnZW5lcmF0b3IsIGRzdCk7CiAgICAgZ2VuZXJhdG9yLnBvcExleGlj
YWxTY29wZSh0aGlzKTsKIH0KQEAgLTIyNTQsNyArMjI1NCw3IEBAIHZvaWQgRm9yTm9kZTo6ZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXIKICAgICBMYWJlbFNjb3BlUHRyIHNjb3BlID0gZ2VuZXJh
dG9yLm5ld0xhYmVsU2NvcGUoTGFiZWxTY29wZTo6TG9vcCk7CiAKICAgICBSZWdpc3RlcklEKiBm
b3JMb29wU3ltYm9sVGFibGUgPSBudWxscHRyOwotICAgIGdlbmVyYXRvci5wdXNoTGV4aWNhbFNj
b3BlKHRoaXMsIHRydWUsIHRydWUsICZmb3JMb29wU3ltYm9sVGFibGUpOworICAgIGdlbmVyYXRv
ci5wdXNoTGV4aWNhbFNjb3BlKHRoaXMsIFREWkNoZWNrT3B0aW1pemF0aW9uOjpDYW5PcHRpbWl6
ZSwgTmVzdGVkU2NvcGVUeXBlOjpJc05lc3RlZCwgJmZvckxvb3BTeW1ib2xUYWJsZSk7CiAKICAg
ICBnZW5lcmF0b3IuZW1pdERlYnVnSG9vayhXaWxsRXhlY3V0ZVN0YXRlbWVudCwgZmlyc3RMaW5l
KCksIHN0YXJ0T2Zmc2V0KCksIGxpbmVTdGFydE9mZnNldCgpKTsKIApAQCAtMjM4Miw3ICsyMzgy
LDcgQEAgdm9pZCBGb3JJbk5vZGU6OmVtaXRNdWx0aUxvb3BCeXRlY29kZShCeQogICAgIFJlZlB0
cjxMYWJlbD4gZW5kID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CiAKICAgICBSZWdpc3RlcklEKiBm
b3JMb29wU3ltYm9sVGFibGUgPSBudWxscHRyOwotICAgIGdlbmVyYXRvci5wdXNoTGV4aWNhbFNj
b3BlKHRoaXMsIHRydWUsIHRydWUsICZmb3JMb29wU3ltYm9sVGFibGUpOworICAgIGdlbmVyYXRv
ci5wdXNoTGV4aWNhbFNjb3BlKHRoaXMsIFREWkNoZWNrT3B0aW1pemF0aW9uOjpDYW5PcHRpbWl6
ZSwgTmVzdGVkU2NvcGVUeXBlOjpJc05lc3RlZCwgJmZvckxvb3BTeW1ib2xUYWJsZSk7CiAKICAg
ICBnZW5lcmF0b3IuZW1pdERlYnVnSG9vayhXaWxsRXhlY3V0ZVN0YXRlbWVudCwgZmlyc3RMaW5l
KCksIHN0YXJ0T2Zmc2V0KCksIGxpbmVTdGFydE9mZnNldCgpKTsKIApAQCAtMjUzMiw3ICsyNTMy
LDcgQEAgdm9pZCBGb3JPZk5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbgogICAgIH0KIAog
ICAgIFJlZ2lzdGVySUQqIGZvckxvb3BTeW1ib2xUYWJsZSA9IG51bGxwdHI7Ci0gICAgZ2VuZXJh
dG9yLnB1c2hMZXhpY2FsU2NvcGUodGhpcywgdHJ1ZSwgdHJ1ZSwgJmZvckxvb3BTeW1ib2xUYWJs
ZSk7CisgICAgZ2VuZXJhdG9yLnB1c2hMZXhpY2FsU2NvcGUodGhpcywgVERaQ2hlY2tPcHRpbWl6
YXRpb246OkNhbk9wdGltaXplLCBOZXN0ZWRTY29wZVR5cGU6OklzTmVzdGVkLCAmZm9yTG9vcFN5
bWJvbFRhYmxlKTsKICAgICBnZW5lcmF0b3IuZW1pdERlYnVnSG9vayhXaWxsRXhlY3V0ZVN0YXRl
bWVudCwgZmlyc3RMaW5lKCksIHN0YXJ0T2Zmc2V0KCksIGxpbmVTdGFydE9mZnNldCgpKTsKICAg
ICBhdXRvIGV4dHJhY3RvciA9IFt0aGlzLCBkc3RdKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0
b3IsIFJlZ2lzdGVySUQqIHZhbHVlKQogICAgIHsKQEAgLTI4NDgsNyArMjg0OCw3IEBAIHZvaWQg
U3dpdGNoTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2UKIAogICAgIFJlZlB0cjxSZWdpc3Rl
cklEPiByMCA9IGdlbmVyYXRvci5lbWl0Tm9kZShtX2V4cHIpOwogCi0gICAgZ2VuZXJhdG9yLnB1
c2hMZXhpY2FsU2NvcGUodGhpcywgZmFsc2UsIHRydWUpOworICAgIGdlbmVyYXRvci5wdXNoTGV4
aWNhbFNjb3BlKHRoaXMsIFREWkNoZWNrT3B0aW1pemF0aW9uOjpDYW5Ob3RPcHRpbWl6ZSwgTmVz
dGVkU2NvcGVUeXBlOjpJc05lc3RlZCk7CiAgICAgbV9ibG9jay0+ZW1pdEJ5dGVjb2RlRm9yQmxv
Y2soZ2VuZXJhdG9yLCByMC5nZXQoKSwgZHN0KTsKICAgICBnZW5lcmF0b3IucG9wTGV4aWNhbFNj
b3BlKHRoaXMpOwogCkBAIC0zMTgxLDcgKzMxODEsNyBAQCB2b2lkIENsYXNzRGVjbE5vZGU6OmVt
aXRCeXRlY29kZShCeXRlY29kCiBSZWdpc3RlcklEKiBDbGFzc0V4cHJOb2RlOjplbWl0Qnl0ZWNv
ZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQogewogICAg
IGlmICghbV9uYW1lLmlzTnVsbCgpKQotICAgICAgICBnZW5lcmF0b3IucHVzaExleGljYWxTY29w
ZSh0aGlzLCB0cnVlLCB0cnVlKTsKKyAgICAgICAgZ2VuZXJhdG9yLnB1c2hMZXhpY2FsU2NvcGUo
dGhpcywgVERaQ2hlY2tPcHRpbWl6YXRpb246OkNhbk9wdGltaXplLCBOZXN0ZWRTY29wZVR5cGU6
OklzTmVzdGVkKTsKIAogICAgIFJlZlB0cjxSZWdpc3RlcklEPiBzdXBlcmNsYXNzOwogICAgIGlm
IChtX2NsYXNzSGVyaXRhZ2UpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267657</attachid>
            <date>2015-12-18 16:10:19 -0800</date>
            <delta_ts>2015-12-18 16:11:46 -0800</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>12960</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0MzAyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBA
CisyMDE1LTEyLTE4ICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEJ5dGVjb2RlR2VuZXJhdG9yOjpwdXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwgYW5kIHB1c2hMZXhp
Y2FsU2NvcGUgc2hvdWxkIHVzZSBlbnVtcyBpbnN0ZWFkIG9mIGJvb2xzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI0NTAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIG1ha2VzIGNvbXByZWhlbmRp
bmcgdGhlIGNhbGwgc2l0ZXMgb2YgdGhlc2UgZnVuY3Rpb25zCisgICAgICAgIGVhc2llciB3aXRo
b3V0IGxvb2tpbmcgdXAgdGhlIGhlYWRlciBvZiB0aGUgZnVuY3Rpb24uCisKKyAgICAgICAgKiBi
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29k
ZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdl
bmVyYXRvcjo6aW5pdGlhbGl6ZURlZmF1bHRQYXJhbWV0ZXJWYWx1ZXNBbmRTZXR1cEZ1bmN0aW9u
U2NvcGVTdGFjayk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjppbml0aWFsaXpl
QXJyb3dGdW5jdGlvbkNvbnRleHRTY29wZUlmTmVlZGVkKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNv
ZGVHZW5lcmF0b3I6OmVtaXRQcmVmaWxsU3RhY2tURFpWYXJpYWJsZXMpOgorICAgICAgICAoSlND
OjpCeXRlY29kZUdlbmVyYXRvcjo6cHVzaExleGljYWxTY29wZSk6CisgICAgICAgIChKU0M6OkJ5
dGVjb2RlR2VuZXJhdG9yOjpwdXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwpOgorICAgICAgICAoSlND
OjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1c2hGdW5jdGlvbk5hbWVTY29wZSk6CisgICAgICAg
IChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHVzaENhdGNoU2NvcGUpOgorICAgICAgICAq
IGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oOgorICAgICAgICAqIGJ5dGVjb21waWxl
ci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjpCbG9ja05vZGU6OmVtaXRCeXRlY29k
ZSk6CisgICAgICAgIChKU0M6OkZvck5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgIChKU0M6
OkZvckluTm9kZTo6ZW1pdE11bHRpTG9vcEJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6Rm9yT2ZO
b2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpTd2l0Y2hOb2RlOjplbWl0Qnl0ZWNv
ZGUpOgorICAgICAgICAoSlNDOjpDbGFzc0V4cHJOb2RlOjplbWl0Qnl0ZWNvZGUpOgorCiAyMDE1
LTEyLTE4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNl
IFNwZWNpYWxGYXN0Q2FzZSBwcm9maWxlcyB3aXRoIFJlc3VsdFByb2ZpbGVzLgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5jcHAJKHJldmlzaW9uIDE5NDMwMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01ODEs
NyArNTgxLDcgQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJgogICAg
ICAgICBlbWl0UHV0RGVyaXZlZENvbnN0cnVjdG9yVG9BcnJvd0Z1bmN0aW9uQ29udGV4dFNjb3Bl
KCk7CiAgICAgfQogCi0gICAgcHVzaExleGljYWxTY29wZShtX3Njb3BlTm9kZSwgdHJ1ZSk7Cisg
ICAgcHVzaExleGljYWxTY29wZShtX3Njb3BlTm9kZSwgVERaQ2hlY2tPcHRpbWl6YXRpb246OkNh
bk9wdGltaXplKTsKIH0KIAogQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZN
JiB2bSwgRXZhbE5vZGUqIGV2YWxOb2RlLCBVbmxpbmtlZEV2YWxDb2RlQmxvY2sqIGNvZGVCbG9j
aywgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlIHByb2ZpbGVyTW9kZSwg
Y29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCogcGFyZW50U2NvcGVURFpWYXJpYWJsZXMpCkBAIC02
MzIsNyArNjMyLDcgQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJgog
ICAgICAgICBlbWl0UHV0VGhpc1RvQXJyb3dGdW5jdGlvbkNvbnRleHRTY29wZSgpOwogICAgIH0K
ICAgICAKLSAgICBwdXNoTGV4aWNhbFNjb3BlKG1fc2NvcGVOb2RlLCB0cnVlKTsKKyAgICBwdXNo
TGV4aWNhbFNjb3BlKG1fc2NvcGVOb2RlLCBURFpDaGVja09wdGltaXphdGlvbjo6Q2FuT3B0aW1p
emUpOwogfQogCiBCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBN
b2R1bGVQcm9ncmFtTm9kZSogbW9kdWxlUHJvZ3JhbU5vZGUsIFVubGlua2VkTW9kdWxlUHJvZ3Jh
bUNvZGVCbG9jayogY29kZUJsb2NrLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQcm9maWxl
ck1vZGUgcHJvZmlsZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50KiBwYXJlbnRTY29w
ZVREWlZhcmlhYmxlcykKQEAgLTgwOSw3ICs4MDksNyBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9y
Ojppbml0aWFsaXplRGVmYXVsCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIFRoaXMg
aW1wbGVtZW50cyBzdGVwIDI1IG9mIHNlY3Rpb24gOS4yLjEyLgotICAgICAgICBwdXNoTGV4aWNh
bFNjb3BlSW50ZXJuYWwoZW52aXJvbm1lbnQsIHRydWUsIGZhbHNlLCBudWxscHRyLCBURFpSZXF1
aXJlbWVudDo6VW5kZXJURFosIFNjb3BlVHlwZTo6TGV0Q29uc3RTY29wZSwgU2NvcGVSZWdpc3Rl
clR5cGU6OkJsb2NrKTsKKyAgICAgICAgcHVzaExleGljYWxTY29wZUludGVybmFsKGVudmlyb25t
ZW50LCBURFpDaGVja09wdGltaXphdGlvbjo6Q2FuT3B0aW1pemUsIE5lc3RlZFNjb3BlVHlwZTo6
SXNOb3ROZXN0ZWQsIG51bGxwdHIsIFREWlJlcXVpcmVtZW50OjpVbmRlclREWiwgU2NvcGVUeXBl
OjpMZXRDb25zdFNjb3BlLCBTY29wZVJlZ2lzdGVyVHlwZTo6QmxvY2spOwogCiAgICAgICAgIFJl
ZlB0cjxSZWdpc3RlcklEPiB0ZW1wID0gbmV3VGVtcG9yYXJ5KCk7CiAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBwYXJhbWV0ZXJzLnNpemUoKTsgaSsrKSB7CkBAIC05MjcsNyArOTI3
LDcgQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6aW5pdGlhbGl6ZUFycm93RgogICAgIH0KIAog
ICAgIHNpemVfdCBzaXplID0gbV9zeW1ib2xUYWJsZVN0YWNrLnNpemUoKTsKLSAgICBwdXNoTGV4
aWNhbFNjb3BlSW50ZXJuYWwoZW52aXJvbm1lbnQsIHRydWUsIGZhbHNlLCBudWxscHRyLCBURFpS
ZXF1aXJlbWVudDo6VW5kZXJURFosIFNjb3BlVHlwZTo6TGV0Q29uc3RTY29wZSwgU2NvcGVSZWdp
c3RlclR5cGU6OkJsb2NrKTsKKyAgICBwdXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwoZW52aXJvbm1l
bnQsIFREWkNoZWNrT3B0aW1pemF0aW9uOjpDYW5PcHRpbWl6ZSwgTmVzdGVkU2NvcGVUeXBlOjpJ
c05vdE5lc3RlZCwgbnVsbHB0ciwgVERaUmVxdWlyZW1lbnQ6OlVuZGVyVERaLCBTY29wZVR5cGU6
OkxldENvbnN0U2NvcGUsIFNjb3BlUmVnaXN0ZXJUeXBlOjpCbG9jayk7CiAKICAgICBBU1NFUlRf
VU5VU0VEKHNpemUsIG1fc3ltYm9sVGFibGVTdGFjay5zaXplKCkgPT0gc2l6ZSArIDEpOwogCkBA
IC0xNzk3LDEzICsxNzk3LDEzIEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQcmVmaWxs
U3RhY2sKICAgICB9CiB9CiAKLXZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OnB1c2hMZXhpY2FsU2Nv
cGUoVmFyaWFibGVFbnZpcm9ubWVudE5vZGUqIG5vZGUsIGJvb2wgY2FuT3B0aW1pemVURFpDaGVj
a3MsIGJvb2wgaXNOZXN0ZWRMZXhpY2FsU2NvcGUsIFJlZ2lzdGVySUQqKiBjb25zdGFudFN5bWJv
bFRhYmxlUmVzdWx0KQordm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6cHVzaExleGljYWxTY29wZShW
YXJpYWJsZUVudmlyb25tZW50Tm9kZSogbm9kZSwgVERaQ2hlY2tPcHRpbWl6YXRpb24gdGR6Q2hl
Y2tPcHRpbWl6YXRpb24sIE5lc3RlZFNjb3BlVHlwZSBuZXN0ZWRTY29wZVR5cGUsIFJlZ2lzdGVy
SUQqKiBjb25zdGFudFN5bWJvbFRhYmxlUmVzdWx0KQogewogICAgIFZhcmlhYmxlRW52aXJvbm1l
bnQmIGVudmlyb25tZW50ID0gbm9kZS0+bGV4aWNhbFZhcmlhYmxlcygpOwotICAgIHB1c2hMZXhp
Y2FsU2NvcGVJbnRlcm5hbChlbnZpcm9ubWVudCwgY2FuT3B0aW1pemVURFpDaGVja3MsIGlzTmVz
dGVkTGV4aWNhbFNjb3BlLCBjb25zdGFudFN5bWJvbFRhYmxlUmVzdWx0LCBURFpSZXF1aXJlbWVu
dDo6VW5kZXJURFosIFNjb3BlVHlwZTo6TGV0Q29uc3RTY29wZSwgU2NvcGVSZWdpc3RlclR5cGU6
OkJsb2NrKTsKKyAgICBwdXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwoZW52aXJvbm1lbnQsIHRkekNo
ZWNrT3B0aW1pemF0aW9uLCBuZXN0ZWRTY29wZVR5cGUsIGNvbnN0YW50U3ltYm9sVGFibGVSZXN1
bHQsIFREWlJlcXVpcmVtZW50OjpVbmRlclREWiwgU2NvcGVUeXBlOjpMZXRDb25zdFNjb3BlLCBT
Y29wZVJlZ2lzdGVyVHlwZTo6QmxvY2spOwogfQogCi12b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjpw
dXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwoVmFyaWFibGVFbnZpcm9ubWVudCYgZW52aXJvbm1lbnQs
IGJvb2wgY2FuT3B0aW1pemVURFpDaGVja3MsIGJvb2wgaXNOZXN0ZWRMZXhpY2FsU2NvcGUsCit2
b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjpwdXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwoVmFyaWFibGVF
bnZpcm9ubWVudCYgZW52aXJvbm1lbnQsIFREWkNoZWNrT3B0aW1pemF0aW9uIHRkekNoZWNrT3B0
aW1pemF0aW9uLCBOZXN0ZWRTY29wZVR5cGUgbmVzdGVkU2NvcGVUeXBlLAogICAgIFJlZ2lzdGVy
SUQqKiBjb25zdGFudFN5bWJvbFRhYmxlUmVzdWx0LCBURFpSZXF1aXJlbWVudCB0ZHpSZXF1aXJl
bWVudCwgU2NvcGVUeXBlIHNjb3BlVHlwZSwgU2NvcGVSZWdpc3RlclR5cGUgc2NvcGVSZWdpc3Rl
clR5cGUpCiB7CiAgICAgaWYgKCFlbnZpcm9ubWVudC5zaXplKCkpCkBAIC0xODI1LDcgKzE4MjUs
NyBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjpwdXNoTGV4aWNhbFNjb3BlCiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIAotICAgIGlmIChpc05lc3RlZExleGljYWxTY29wZSkKKyAgICBpZiAobmVz
dGVkU2NvcGVUeXBlID09IE5lc3RlZFNjb3BlVHlwZTo6SXNOZXN0ZWQpCiAgICAgICAgIHN5bWJv
bFRhYmxlLT5tYXJrSXNOZXN0ZWRMZXhpY2FsU2NvcGUoKTsKIAogICAgIGF1dG8gbG9va1VwVmFy
S2luZCA9IFtdIChVbmlxdWVkU3RyaW5nSW1wbCosIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnRF
bnRyeSYgZW50cnkpIC0+IFZhcktpbmQgewpAQCAtMTg2Nyw2ICsxODY3LDcgQEAgdm9pZCBCeXRl
Y29kZUdlbmVyYXRvcjo6cHVzaExleGljYWxTY29wZQogICAgIH0KIAogICAgIG1fc3ltYm9sVGFi
bGVTdGFjay5hcHBlbmQoU3ltYm9sVGFibGVTdGFja0VudHJ5eyBzeW1ib2xUYWJsZSwgbmV3U2Nv
cGUsIGZhbHNlLCBzeW1ib2xUYWJsZUNvbnN0YW50SW5kZXggfSk7CisgICAgYm9vbCBjYW5PcHRp
bWl6ZVREWkNoZWNrcyA9IHRkekNoZWNrT3B0aW1pemF0aW9uID09IFREWkNoZWNrT3B0aW1pemF0
aW9uOjpDYW5PcHRpbWl6ZTsKICAgICBpZiAodGR6UmVxdWlyZW1lbnQgPT0gVERaUmVxdWlyZW1l
bnQ6OlVuZGVyVERaKQogICAgICAgICBtX1REWlN0YWNrLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihl
bnZpcm9ubWVudCwgY2FuT3B0aW1pemVURFpDaGVja3MpKTsKIApAQCAtMzU2Niw3ICszNTY3LDcg
QEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1c2hGdW5jdGlvbgogICAgICAgICBhZGRS
ZXN1bHQuaXRlcmF0b3ItPnZhbHVlLnNldElzQ2FwdHVyZWQoKTsKICAgICBhZGRSZXN1bHQuaXRl
cmF0b3ItPnZhbHVlLnNldElzQ29uc3QoKTsgLy8gVGhlIGZ1bmN0aW9uIG5hbWUgc2NvcGUgbmFt
ZSBhY3RzIGxpa2UgYSBjb25zdCB2YXJpYWJsZS4KICAgICB1bnNpZ25lZCBudW1WYXJzID0gbV9j
b2RlQmxvY2stPm1fbnVtVmFyczsKLSAgICBwdXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwobmFtZVNj
b3BlRW52aXJvbm1lbnQsIHRydWUsIGZhbHNlLCBudWxscHRyLCBURFpSZXF1aXJlbWVudDo6Tm90
VW5kZXJURFosIFNjb3BlVHlwZTo6RnVuY3Rpb25OYW1lU2NvcGUsIFNjb3BlUmVnaXN0ZXJUeXBl
OjpWYXIpOworICAgIHB1c2hMZXhpY2FsU2NvcGVJbnRlcm5hbChuYW1lU2NvcGVFbnZpcm9ubWVu
dCwgVERaQ2hlY2tPcHRpbWl6YXRpb246OkNhbk9wdGltaXplLCBOZXN0ZWRTY29wZVR5cGU6Oklz
Tm90TmVzdGVkLCBudWxscHRyLCBURFpSZXF1aXJlbWVudDo6Tm90VW5kZXJURFosIFNjb3BlVHlw
ZTo6RnVuY3Rpb25OYW1lU2NvcGUsIFNjb3BlUmVnaXN0ZXJUeXBlOjpWYXIpOwogICAgIEFTU0VS
VF9VTlVTRUQobnVtVmFycywgbV9jb2RlQmxvY2stPm1fbnVtVmFycyA9PSBzdGF0aWNfY2FzdDxp
bnQ+KG51bVZhcnMgKyAxKSk7IC8vIFNob3VsZCBoYXZlIG9ubHkgY3JlYXRlZCBvbmUgbmV3ICJ2
YXIiIGZvciB0aGUgZnVuY3Rpb24gbmFtZSBzY29wZS4KICAgICBib29sIHNob3VsZFRyZWF0QXNM
ZXhpY2FsVmFyaWFibGUgPSBpc1N0cmljdE1vZGUoKTsKICAgICBWYXJpYWJsZSBmdW5jdGlvblZh
ciA9IHZhcmlhYmxlRm9yTG9jYWxFbnRyeShwcm9wZXJ0eSwgbV9zeW1ib2xUYWJsZVN0YWNrLmxh
c3QoKS5tX3N5bWJvbFRhYmxlLT5nZXQocHJvcGVydHkuaW1wbCgpKSwgbV9zeW1ib2xUYWJsZVN0
YWNrLmxhc3QoKS5tX3N5bWJvbFRhYmxlQ29uc3RhbnRJbmRleCwgc2hvdWxkVHJlYXRBc0xleGlj
YWxWYXJpYWJsZSk7CkBAIC0zNTkyLDcgKzM1OTMsNyBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9y
Ojpwb3BTY29wZWRDb250cm9sCiB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHVzaENhdGNo
U2NvcGUoY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHksIFJlZ2lzdGVySUQqIGV4Y2VwdGlvblZh
bHVlLCBWYXJpYWJsZUVudmlyb25tZW50JiBlbnZpcm9ubWVudCkKIHsKICAgICBSRUxFQVNFX0FT
U0VSVChlbnZpcm9ubWVudC5jb250YWlucyhwcm9wZXJ0eS5pbXBsKCkpKTsKLSAgICBwdXNoTGV4
aWNhbFNjb3BlSW50ZXJuYWwoZW52aXJvbm1lbnQsIHRydWUsIGZhbHNlLCBudWxscHRyLCBURFpS
ZXF1aXJlbWVudDo6Tm90VW5kZXJURFosIFNjb3BlVHlwZTo6Q2F0Y2hTY29wZSwgU2NvcGVSZWdp
c3RlclR5cGU6OkJsb2NrKTsKKyAgICBwdXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwoZW52aXJvbm1l
bnQsIFREWkNoZWNrT3B0aW1pemF0aW9uOjpDYW5PcHRpbWl6ZSwgTmVzdGVkU2NvcGVUeXBlOjpJ
c05vdE5lc3RlZCwgbnVsbHB0ciwgVERaUmVxdWlyZW1lbnQ6Ok5vdFVuZGVyVERaLCBTY29wZVR5
cGU6OkNhdGNoU2NvcGUsIFNjb3BlUmVnaXN0ZXJUeXBlOjpCbG9jayk7CiAgICAgVmFyaWFibGUg
ZXhjZXB0aW9uVmFyID0gdmFyaWFibGUocHJvcGVydHkpOwogICAgIFJFTEVBU0VfQVNTRVJUKGV4
Y2VwdGlvblZhci5pc1Jlc29sdmVkKCkpOwogICAgIFJlZlB0cjxSZWdpc3RlcklEPiBzY29wZSA9
IGVtaXRSZXNvbHZlU2NvcGUobnVsbHB0ciwgZXhjZXB0aW9uVmFyKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9y
LmgJKHJldmlzaW9uIDE5NDMwMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNzA0LDcgKzcwNCw5IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBlbnVtIGNsYXNzIFREWlJlcXVpcmVtZW50IHsgVW5k
ZXJURFosIE5vdFVuZGVyVERaIH07CiAgICAgICAgIGVudW0gY2xhc3MgU2NvcGVUeXBlIHsgQ2F0
Y2hTY29wZSwgTGV0Q29uc3RTY29wZSwgRnVuY3Rpb25OYW1lU2NvcGUgfTsKICAgICAgICAgZW51
bSBjbGFzcyBTY29wZVJlZ2lzdGVyVHlwZSB7IFZhciwgQmxvY2sgfTsKLSAgICAgICAgdm9pZCBw
dXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwoVmFyaWFibGVFbnZpcm9ubWVudCYsIGJvb2wgY2FuT3B0
aW1pemVURFpDaGVja3MsIGJvb2wgaXNOZXN0ZWRMZXhpY2FsU2NvcGUsIFJlZ2lzdGVySUQqKiBj
b25zdGFudFN5bWJvbFRhYmxlUmVzdWx0LCBURFpSZXF1aXJlbWVudCwgU2NvcGVUeXBlLCBTY29w
ZVJlZ2lzdGVyVHlwZSk7CisgICAgICAgIGVudW0gY2xhc3MgVERaQ2hlY2tPcHRpbWl6YXRpb24g
eyBDYW5PcHRpbWl6ZSwgQ2FuTm90T3B0aW1pemUgfTsKKyAgICAgICAgZW51bSBjbGFzcyBOZXN0
ZWRTY29wZVR5cGUgeyBJc05lc3RlZCwgSXNOb3ROZXN0ZWQgfTsKKyAgICAgICAgdm9pZCBwdXNo
TGV4aWNhbFNjb3BlSW50ZXJuYWwoVmFyaWFibGVFbnZpcm9ubWVudCYsIFREWkNoZWNrT3B0aW1p
emF0aW9uLCBOZXN0ZWRTY29wZVR5cGUsIFJlZ2lzdGVySUQqKiBjb25zdGFudFN5bWJvbFRhYmxl
UmVzdWx0LCBURFpSZXF1aXJlbWVudCwgU2NvcGVUeXBlLCBTY29wZVJlZ2lzdGVyVHlwZSk7CiAg
ICAgICAgIHZvaWQgcG9wTGV4aWNhbFNjb3BlSW50ZXJuYWwoVmFyaWFibGVFbnZpcm9ubWVudCYs
IFREWlJlcXVpcmVtZW50KTsKICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTG9va1VwVmFyS2lu
ZEZ1bmN0b3I+CiAgICAgICAgIGJvb2wgaW5zdGFudGlhdGVMZXhpY2FsVmFyaWFibGVzKGNvbnN0
IFZhcmlhYmxlRW52aXJvbm1lbnQmLCBTeW1ib2xUYWJsZSosIFNjb3BlUmVnaXN0ZXJUeXBlLCBM
b29rVXBWYXJLaW5kRnVuY3Rvcik7CkBAIC03MTUsNyArNzE3LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIHZvaWQgZW1pdE5ld0Z1bmN0aW9uRXhwcmVzc2lvbkNvbW1vbihSZWdpc3RlcklE
KiwgQmFzZUZ1bmNFeHByTm9kZSopOwogCiAgICAgcHVibGljOgotICAgICAgICB2b2lkIHB1c2hM
ZXhpY2FsU2NvcGUoVmFyaWFibGVFbnZpcm9ubWVudE5vZGUqLCBib29sIGNhbk9wdGltaXplVERa
Q2hlY2tzLCBib29sIGlzTmVzdGVkTGV4aWNhbFNjb3BlID0gZmFsc2UsIFJlZ2lzdGVySUQqKiBj
b25zdGFudFN5bWJvbFRhYmxlUmVzdWx0ID0gbnVsbHB0cik7CisgICAgICAgIHZvaWQgcHVzaExl
eGljYWxTY29wZShWYXJpYWJsZUVudmlyb25tZW50Tm9kZSosIFREWkNoZWNrT3B0aW1pemF0aW9u
LCBOZXN0ZWRTY29wZVR5cGUgPSBOZXN0ZWRTY29wZVR5cGU6OklzTm90TmVzdGVkLCBSZWdpc3Rl
cklEKiogY29uc3RhbnRTeW1ib2xUYWJsZVJlc3VsdCA9IG51bGxwdHIpOwogICAgICAgICB2b2lk
IHBvcExleGljYWxTY29wZShWYXJpYWJsZUVudmlyb25tZW50Tm9kZSopOwogICAgICAgICB2b2lk
IHByZXBhcmVMZXhpY2FsU2NvcGVGb3JOZXh0Rm9yTG9vcEl0ZXJhdGlvbihWYXJpYWJsZUVudmly
b25tZW50Tm9kZSosIFJlZ2lzdGVySUQqIGxvb3BTeW1ib2xUYWJsZSk7CiAgICAgICAgIGludCBs
YWJlbFNjb3BlRGVwdGgoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAJKHJldmlzaW9uIDE5NDMwMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjA0OSw3ICsyMDQ5LDcgQEAgdm9pZCBCbG9ja05vZGU6OmVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbgogewogICAgIGlmICghbV9zdGF0ZW1lbnRzKQogICAgICAgICByZXR1
cm47Ci0gICAgZ2VuZXJhdG9yLnB1c2hMZXhpY2FsU2NvcGUodGhpcywgdHJ1ZSwgdHJ1ZSk7Cisg
ICAgZ2VuZXJhdG9yLnB1c2hMZXhpY2FsU2NvcGUodGhpcywgQnl0ZWNvZGVHZW5lcmF0b3I6OlRE
WkNoZWNrT3B0aW1pemF0aW9uOjpDYW5PcHRpbWl6ZSwgQnl0ZWNvZGVHZW5lcmF0b3I6Ok5lc3Rl
ZFNjb3BlVHlwZTo6SXNOZXN0ZWQpOwogICAgIG1fc3RhdGVtZW50cy0+ZW1pdEJ5dGVjb2RlKGdl
bmVyYXRvciwgZHN0KTsKICAgICBnZW5lcmF0b3IucG9wTGV4aWNhbFNjb3BlKHRoaXMpOwogfQpA
QCAtMjI1NCw3ICsyMjU0LDcgQEAgdm9pZCBGb3JOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcgogICAgIExhYmVsU2NvcGVQdHIgc2NvcGUgPSBnZW5lcmF0b3IubmV3TGFiZWxTY29wZShM
YWJlbFNjb3BlOjpMb29wKTsKIAogICAgIFJlZ2lzdGVySUQqIGZvckxvb3BTeW1ib2xUYWJsZSA9
IG51bGxwdHI7Ci0gICAgZ2VuZXJhdG9yLnB1c2hMZXhpY2FsU2NvcGUodGhpcywgdHJ1ZSwgdHJ1
ZSwgJmZvckxvb3BTeW1ib2xUYWJsZSk7CisgICAgZ2VuZXJhdG9yLnB1c2hMZXhpY2FsU2NvcGUo
dGhpcywgQnl0ZWNvZGVHZW5lcmF0b3I6OlREWkNoZWNrT3B0aW1pemF0aW9uOjpDYW5PcHRpbWl6
ZSwgQnl0ZWNvZGVHZW5lcmF0b3I6Ok5lc3RlZFNjb3BlVHlwZTo6SXNOZXN0ZWQsICZmb3JMb29w
U3ltYm9sVGFibGUpOwogCiAgICAgZ2VuZXJhdG9yLmVtaXREZWJ1Z0hvb2soV2lsbEV4ZWN1dGVT
dGF0ZW1lbnQsIGZpcnN0TGluZSgpLCBzdGFydE9mZnNldCgpLCBsaW5lU3RhcnRPZmZzZXQoKSk7
CiAKQEAgLTIzODIsNyArMjM4Miw3IEBAIHZvaWQgRm9ySW5Ob2RlOjplbWl0TXVsdGlMb29wQnl0
ZWNvZGUoQnkKICAgICBSZWZQdHI8TGFiZWw+IGVuZCA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOwog
CiAgICAgUmVnaXN0ZXJJRCogZm9yTG9vcFN5bWJvbFRhYmxlID0gbnVsbHB0cjsKLSAgICBnZW5l
cmF0b3IucHVzaExleGljYWxTY29wZSh0aGlzLCB0cnVlLCB0cnVlLCAmZm9yTG9vcFN5bWJvbFRh
YmxlKTsKKyAgICBnZW5lcmF0b3IucHVzaExleGljYWxTY29wZSh0aGlzLCBCeXRlY29kZUdlbmVy
YXRvcjo6VERaQ2hlY2tPcHRpbWl6YXRpb246OkNhbk9wdGltaXplLCBCeXRlY29kZUdlbmVyYXRv
cjo6TmVzdGVkU2NvcGVUeXBlOjpJc05lc3RlZCwgJmZvckxvb3BTeW1ib2xUYWJsZSk7CiAKICAg
ICBnZW5lcmF0b3IuZW1pdERlYnVnSG9vayhXaWxsRXhlY3V0ZVN0YXRlbWVudCwgZmlyc3RMaW5l
KCksIHN0YXJ0T2Zmc2V0KCksIGxpbmVTdGFydE9mZnNldCgpKTsKIApAQCAtMjUzMiw3ICsyNTMy
LDcgQEAgdm9pZCBGb3JPZk5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbgogICAgIH0KIAog
ICAgIFJlZ2lzdGVySUQqIGZvckxvb3BTeW1ib2xUYWJsZSA9IG51bGxwdHI7Ci0gICAgZ2VuZXJh
dG9yLnB1c2hMZXhpY2FsU2NvcGUodGhpcywgdHJ1ZSwgdHJ1ZSwgJmZvckxvb3BTeW1ib2xUYWJs
ZSk7CisgICAgZ2VuZXJhdG9yLnB1c2hMZXhpY2FsU2NvcGUodGhpcywgQnl0ZWNvZGVHZW5lcmF0
b3I6OlREWkNoZWNrT3B0aW1pemF0aW9uOjpDYW5PcHRpbWl6ZSwgQnl0ZWNvZGVHZW5lcmF0b3I6
Ok5lc3RlZFNjb3BlVHlwZTo6SXNOZXN0ZWQsICZmb3JMb29wU3ltYm9sVGFibGUpOwogICAgIGdl
bmVyYXRvci5lbWl0RGVidWdIb29rKFdpbGxFeGVjdXRlU3RhdGVtZW50LCBmaXJzdExpbmUoKSwg
c3RhcnRPZmZzZXQoKSwgbGluZVN0YXJ0T2Zmc2V0KCkpOwogICAgIGF1dG8gZXh0cmFjdG9yID0g
W3RoaXMsIGRzdF0oQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogdmFs
dWUpCiAgICAgewpAQCAtMjg0OCw3ICsyODQ4LDcgQEAgdm9pZCBTd2l0Y2hOb2RlOjplbWl0Qnl0
ZWNvZGUoQnl0ZWNvZGVHZQogCiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHIwID0gZ2VuZXJhdG9y
LmVtaXROb2RlKG1fZXhwcik7CiAKLSAgICBnZW5lcmF0b3IucHVzaExleGljYWxTY29wZSh0aGlz
LCBmYWxzZSwgdHJ1ZSk7CisgICAgZ2VuZXJhdG9yLnB1c2hMZXhpY2FsU2NvcGUodGhpcywgQnl0
ZWNvZGVHZW5lcmF0b3I6OlREWkNoZWNrT3B0aW1pemF0aW9uOjpDYW5Ob3RPcHRpbWl6ZSwgQnl0
ZWNvZGVHZW5lcmF0b3I6Ok5lc3RlZFNjb3BlVHlwZTo6SXNOZXN0ZWQpOwogICAgIG1fYmxvY2st
PmVtaXRCeXRlY29kZUZvckJsb2NrKGdlbmVyYXRvciwgcjAuZ2V0KCksIGRzdCk7CiAgICAgZ2Vu
ZXJhdG9yLnBvcExleGljYWxTY29wZSh0aGlzKTsKIApAQCAtMzE4MSw3ICszMTgxLDcgQEAgdm9p
ZCBDbGFzc0RlY2xOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZAogUmVnaXN0ZXJJRCogQ2xhc3NF
eHByTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lz
dGVySUQqIGRzdCkKIHsKICAgICBpZiAoIW1fbmFtZS5pc051bGwoKSkKLSAgICAgICAgZ2VuZXJh
dG9yLnB1c2hMZXhpY2FsU2NvcGUodGhpcywgdHJ1ZSwgdHJ1ZSk7CisgICAgICAgIGdlbmVyYXRv
ci5wdXNoTGV4aWNhbFNjb3BlKHRoaXMsIEJ5dGVjb2RlR2VuZXJhdG9yOjpURFpDaGVja09wdGlt
aXphdGlvbjo6Q2FuT3B0aW1pemUsIEJ5dGVjb2RlR2VuZXJhdG9yOjpOZXN0ZWRTY29wZVR5cGU6
OklzTmVzdGVkKTsKIAogICAgIFJlZlB0cjxSZWdpc3RlcklEPiBzdXBlcmNsYXNzOwogICAgIGlm
IChtX2NsYXNzSGVyaXRhZ2UpIHsK
</data>
<flag name="review"
          id="292679"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267658</attachid>
            <date>2015-12-18 16:11:46 -0800</date>
            <delta_ts>2015-12-18 16:16:30 -0800</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>13046</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0MzAyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBA
CisyMDE1LTEyLTE4ICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEJ5dGVjb2RlR2VuZXJhdG9yOjpwdXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwgYW5kIHB1c2hMZXhp
Y2FsU2NvcGUgc2hvdWxkIHVzZSBlbnVtcyBpbnN0ZWFkIG9mIGJvb2xzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI0NTAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIG1ha2VzIGNvbXByZWhlbmRp
bmcgdGhlIGNhbGwgc2l0ZXMgb2YgdGhlc2UgZnVuY3Rpb25zCisgICAgICAgIGVhc2llciB3aXRo
b3V0IGxvb2tpbmcgdXAgdGhlIGhlYWRlciBvZiB0aGUgZnVuY3Rpb24uCisKKyAgICAgICAgKiBi
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29k
ZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdl
bmVyYXRvcjo6aW5pdGlhbGl6ZURlZmF1bHRQYXJhbWV0ZXJWYWx1ZXNBbmRTZXR1cEZ1bmN0aW9u
U2NvcGVTdGFjayk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjppbml0aWFsaXpl
QXJyb3dGdW5jdGlvbkNvbnRleHRTY29wZUlmTmVlZGVkKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNv
ZGVHZW5lcmF0b3I6OmVtaXRQcmVmaWxsU3RhY2tURFpWYXJpYWJsZXMpOgorICAgICAgICAoSlND
OjpCeXRlY29kZUdlbmVyYXRvcjo6cHVzaExleGljYWxTY29wZSk6CisgICAgICAgIChKU0M6OkJ5
dGVjb2RlR2VuZXJhdG9yOjpwdXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwpOgorICAgICAgICAoSlND
OjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1c2hGdW5jdGlvbk5hbWVTY29wZSk6CisgICAgICAg
IChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHVzaENhdGNoU2NvcGUpOgorICAgICAgICAq
IGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oOgorICAgICAgICAqIGJ5dGVjb21waWxl
ci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjpCbG9ja05vZGU6OmVtaXRCeXRlY29k
ZSk6CisgICAgICAgIChKU0M6OkZvck5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgIChKU0M6
OkZvckluTm9kZTo6ZW1pdE11bHRpTG9vcEJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6Rm9yT2ZO
b2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpTd2l0Y2hOb2RlOjplbWl0Qnl0ZWNv
ZGUpOgorICAgICAgICAoSlNDOjpDbGFzc0V4cHJOb2RlOjplbWl0Qnl0ZWNvZGUpOgorCiAyMDE1
LTEyLTE4ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBsYWNl
IFNwZWNpYWxGYXN0Q2FzZSBwcm9maWxlcyB3aXRoIFJlc3VsdFByb2ZpbGVzLgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5jcHAJKHJldmlzaW9uIDE5NDMwMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01ODEs
NyArNTgxLDcgQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJgogICAg
ICAgICBlbWl0UHV0RGVyaXZlZENvbnN0cnVjdG9yVG9BcnJvd0Z1bmN0aW9uQ29udGV4dFNjb3Bl
KCk7CiAgICAgfQogCi0gICAgcHVzaExleGljYWxTY29wZShtX3Njb3BlTm9kZSwgdHJ1ZSk7Cisg
ICAgcHVzaExleGljYWxTY29wZShtX3Njb3BlTm9kZSwgVERaQ2hlY2tPcHRpbWl6YXRpb246OkNh
bk9wdGltaXplKTsKIH0KIAogQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZN
JiB2bSwgRXZhbE5vZGUqIGV2YWxOb2RlLCBVbmxpbmtlZEV2YWxDb2RlQmxvY2sqIGNvZGVCbG9j
aywgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlIHByb2ZpbGVyTW9kZSwg
Y29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCogcGFyZW50U2NvcGVURFpWYXJpYWJsZXMpCkBAIC02
MzIsNyArNjMyLDcgQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJgog
ICAgICAgICBlbWl0UHV0VGhpc1RvQXJyb3dGdW5jdGlvbkNvbnRleHRTY29wZSgpOwogICAgIH0K
ICAgICAKLSAgICBwdXNoTGV4aWNhbFNjb3BlKG1fc2NvcGVOb2RlLCB0cnVlKTsKKyAgICBwdXNo
TGV4aWNhbFNjb3BlKG1fc2NvcGVOb2RlLCBURFpDaGVja09wdGltaXphdGlvbjo6Q2FuT3B0aW1p
emUpOwogfQogCiBCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBN
b2R1bGVQcm9ncmFtTm9kZSogbW9kdWxlUHJvZ3JhbU5vZGUsIFVubGlua2VkTW9kdWxlUHJvZ3Jh
bUNvZGVCbG9jayogY29kZUJsb2NrLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQcm9maWxl
ck1vZGUgcHJvZmlsZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50KiBwYXJlbnRTY29w
ZVREWlZhcmlhYmxlcykKQEAgLTgwOSw3ICs4MDksNyBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9y
Ojppbml0aWFsaXplRGVmYXVsCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIFRoaXMg
aW1wbGVtZW50cyBzdGVwIDI1IG9mIHNlY3Rpb24gOS4yLjEyLgotICAgICAgICBwdXNoTGV4aWNh
bFNjb3BlSW50ZXJuYWwoZW52aXJvbm1lbnQsIHRydWUsIGZhbHNlLCBudWxscHRyLCBURFpSZXF1
aXJlbWVudDo6VW5kZXJURFosIFNjb3BlVHlwZTo6TGV0Q29uc3RTY29wZSwgU2NvcGVSZWdpc3Rl
clR5cGU6OkJsb2NrKTsKKyAgICAgICAgcHVzaExleGljYWxTY29wZUludGVybmFsKGVudmlyb25t
ZW50LCBURFpDaGVja09wdGltaXphdGlvbjo6Q2FuT3B0aW1pemUsIE5lc3RlZFNjb3BlVHlwZTo6
SXNOb3ROZXN0ZWQsIG51bGxwdHIsIFREWlJlcXVpcmVtZW50OjpVbmRlclREWiwgU2NvcGVUeXBl
OjpMZXRDb25zdFNjb3BlLCBTY29wZVJlZ2lzdGVyVHlwZTo6QmxvY2spOwogCiAgICAgICAgIFJl
ZlB0cjxSZWdpc3RlcklEPiB0ZW1wID0gbmV3VGVtcG9yYXJ5KCk7CiAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBwYXJhbWV0ZXJzLnNpemUoKTsgaSsrKSB7CkBAIC05MjcsNyArOTI3
LDcgQEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6aW5pdGlhbGl6ZUFycm93RgogICAgIH0KIAog
ICAgIHNpemVfdCBzaXplID0gbV9zeW1ib2xUYWJsZVN0YWNrLnNpemUoKTsKLSAgICBwdXNoTGV4
aWNhbFNjb3BlSW50ZXJuYWwoZW52aXJvbm1lbnQsIHRydWUsIGZhbHNlLCBudWxscHRyLCBURFpS
ZXF1aXJlbWVudDo6VW5kZXJURFosIFNjb3BlVHlwZTo6TGV0Q29uc3RTY29wZSwgU2NvcGVSZWdp
c3RlclR5cGU6OkJsb2NrKTsKKyAgICBwdXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwoZW52aXJvbm1l
bnQsIFREWkNoZWNrT3B0aW1pemF0aW9uOjpDYW5PcHRpbWl6ZSwgTmVzdGVkU2NvcGVUeXBlOjpJ
c05vdE5lc3RlZCwgbnVsbHB0ciwgVERaUmVxdWlyZW1lbnQ6OlVuZGVyVERaLCBTY29wZVR5cGU6
OkxldENvbnN0U2NvcGUsIFNjb3BlUmVnaXN0ZXJUeXBlOjpCbG9jayk7CiAKICAgICBBU1NFUlRf
VU5VU0VEKHNpemUsIG1fc3ltYm9sVGFibGVTdGFjay5zaXplKCkgPT0gc2l6ZSArIDEpOwogCkBA
IC0xNzk3LDEzICsxNzk3LDEzIEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRQcmVmaWxs
U3RhY2sKICAgICB9CiB9CiAKLXZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OnB1c2hMZXhpY2FsU2Nv
cGUoVmFyaWFibGVFbnZpcm9ubWVudE5vZGUqIG5vZGUsIGJvb2wgY2FuT3B0aW1pemVURFpDaGVj
a3MsIGJvb2wgaXNOZXN0ZWRMZXhpY2FsU2NvcGUsIFJlZ2lzdGVySUQqKiBjb25zdGFudFN5bWJv
bFRhYmxlUmVzdWx0KQordm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6cHVzaExleGljYWxTY29wZShW
YXJpYWJsZUVudmlyb25tZW50Tm9kZSogbm9kZSwgVERaQ2hlY2tPcHRpbWl6YXRpb24gdGR6Q2hl
Y2tPcHRpbWl6YXRpb24sIE5lc3RlZFNjb3BlVHlwZSBuZXN0ZWRTY29wZVR5cGUsIFJlZ2lzdGVy
SUQqKiBjb25zdGFudFN5bWJvbFRhYmxlUmVzdWx0KQogewogICAgIFZhcmlhYmxlRW52aXJvbm1l
bnQmIGVudmlyb25tZW50ID0gbm9kZS0+bGV4aWNhbFZhcmlhYmxlcygpOwotICAgIHB1c2hMZXhp
Y2FsU2NvcGVJbnRlcm5hbChlbnZpcm9ubWVudCwgY2FuT3B0aW1pemVURFpDaGVja3MsIGlzTmVz
dGVkTGV4aWNhbFNjb3BlLCBjb25zdGFudFN5bWJvbFRhYmxlUmVzdWx0LCBURFpSZXF1aXJlbWVu
dDo6VW5kZXJURFosIFNjb3BlVHlwZTo6TGV0Q29uc3RTY29wZSwgU2NvcGVSZWdpc3RlclR5cGU6
OkJsb2NrKTsKKyAgICBwdXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwoZW52aXJvbm1lbnQsIHRkekNo
ZWNrT3B0aW1pemF0aW9uLCBuZXN0ZWRTY29wZVR5cGUsIGNvbnN0YW50U3ltYm9sVGFibGVSZXN1
bHQsIFREWlJlcXVpcmVtZW50OjpVbmRlclREWiwgU2NvcGVUeXBlOjpMZXRDb25zdFNjb3BlLCBT
Y29wZVJlZ2lzdGVyVHlwZTo6QmxvY2spOwogfQogCi12b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjpw
dXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwoVmFyaWFibGVFbnZpcm9ubWVudCYgZW52aXJvbm1lbnQs
IGJvb2wgY2FuT3B0aW1pemVURFpDaGVja3MsIGJvb2wgaXNOZXN0ZWRMZXhpY2FsU2NvcGUsCit2
b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjpwdXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwoVmFyaWFibGVF
bnZpcm9ubWVudCYgZW52aXJvbm1lbnQsIFREWkNoZWNrT3B0aW1pemF0aW9uIHRkekNoZWNrT3B0
aW1pemF0aW9uLCBOZXN0ZWRTY29wZVR5cGUgbmVzdGVkU2NvcGVUeXBlLAogICAgIFJlZ2lzdGVy
SUQqKiBjb25zdGFudFN5bWJvbFRhYmxlUmVzdWx0LCBURFpSZXF1aXJlbWVudCB0ZHpSZXF1aXJl
bWVudCwgU2NvcGVUeXBlIHNjb3BlVHlwZSwgU2NvcGVSZWdpc3RlclR5cGUgc2NvcGVSZWdpc3Rl
clR5cGUpCiB7CiAgICAgaWYgKCFlbnZpcm9ubWVudC5zaXplKCkpCkBAIC0xODI1LDcgKzE4MjUs
NyBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjpwdXNoTGV4aWNhbFNjb3BlCiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIAotICAgIGlmIChpc05lc3RlZExleGljYWxTY29wZSkKKyAgICBpZiAobmVz
dGVkU2NvcGVUeXBlID09IE5lc3RlZFNjb3BlVHlwZTo6SXNOZXN0ZWQpCiAgICAgICAgIHN5bWJv
bFRhYmxlLT5tYXJrSXNOZXN0ZWRMZXhpY2FsU2NvcGUoKTsKIAogICAgIGF1dG8gbG9va1VwVmFy
S2luZCA9IFtdIChVbmlxdWVkU3RyaW5nSW1wbCosIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnRF
bnRyeSYgZW50cnkpIC0+IFZhcktpbmQgewpAQCAtMTg2Nyw2ICsxODY3LDcgQEAgdm9pZCBCeXRl
Y29kZUdlbmVyYXRvcjo6cHVzaExleGljYWxTY29wZQogICAgIH0KIAogICAgIG1fc3ltYm9sVGFi
bGVTdGFjay5hcHBlbmQoU3ltYm9sVGFibGVTdGFja0VudHJ5eyBzeW1ib2xUYWJsZSwgbmV3U2Nv
cGUsIGZhbHNlLCBzeW1ib2xUYWJsZUNvbnN0YW50SW5kZXggfSk7CisgICAgYm9vbCBjYW5PcHRp
bWl6ZVREWkNoZWNrcyA9IHRkekNoZWNrT3B0aW1pemF0aW9uID09IFREWkNoZWNrT3B0aW1pemF0
aW9uOjpDYW5PcHRpbWl6ZTsKICAgICBpZiAodGR6UmVxdWlyZW1lbnQgPT0gVERaUmVxdWlyZW1l
bnQ6OlVuZGVyVERaKQogICAgICAgICBtX1REWlN0YWNrLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihl
bnZpcm9ubWVudCwgY2FuT3B0aW1pemVURFpDaGVja3MpKTsKIApAQCAtMzU2Niw3ICszNTY3LDcg
QEAgdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFB1c2hGdW5jdGlvbgogICAgICAgICBhZGRS
ZXN1bHQuaXRlcmF0b3ItPnZhbHVlLnNldElzQ2FwdHVyZWQoKTsKICAgICBhZGRSZXN1bHQuaXRl
cmF0b3ItPnZhbHVlLnNldElzQ29uc3QoKTsgLy8gVGhlIGZ1bmN0aW9uIG5hbWUgc2NvcGUgbmFt
ZSBhY3RzIGxpa2UgYSBjb25zdCB2YXJpYWJsZS4KICAgICB1bnNpZ25lZCBudW1WYXJzID0gbV9j
b2RlQmxvY2stPm1fbnVtVmFyczsKLSAgICBwdXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwobmFtZVNj
b3BlRW52aXJvbm1lbnQsIHRydWUsIGZhbHNlLCBudWxscHRyLCBURFpSZXF1aXJlbWVudDo6Tm90
VW5kZXJURFosIFNjb3BlVHlwZTo6RnVuY3Rpb25OYW1lU2NvcGUsIFNjb3BlUmVnaXN0ZXJUeXBl
OjpWYXIpOworICAgIHB1c2hMZXhpY2FsU2NvcGVJbnRlcm5hbChuYW1lU2NvcGVFbnZpcm9ubWVu
dCwgVERaQ2hlY2tPcHRpbWl6YXRpb246OkNhbk9wdGltaXplLCBOZXN0ZWRTY29wZVR5cGU6Oklz
Tm90TmVzdGVkLCBudWxscHRyLCBURFpSZXF1aXJlbWVudDo6Tm90VW5kZXJURFosIFNjb3BlVHlw
ZTo6RnVuY3Rpb25OYW1lU2NvcGUsIFNjb3BlUmVnaXN0ZXJUeXBlOjpWYXIpOwogICAgIEFTU0VS
VF9VTlVTRUQobnVtVmFycywgbV9jb2RlQmxvY2stPm1fbnVtVmFycyA9PSBzdGF0aWNfY2FzdDxp
bnQ+KG51bVZhcnMgKyAxKSk7IC8vIFNob3VsZCBoYXZlIG9ubHkgY3JlYXRlZCBvbmUgbmV3ICJ2
YXIiIGZvciB0aGUgZnVuY3Rpb24gbmFtZSBzY29wZS4KICAgICBib29sIHNob3VsZFRyZWF0QXNM
ZXhpY2FsVmFyaWFibGUgPSBpc1N0cmljdE1vZGUoKTsKICAgICBWYXJpYWJsZSBmdW5jdGlvblZh
ciA9IHZhcmlhYmxlRm9yTG9jYWxFbnRyeShwcm9wZXJ0eSwgbV9zeW1ib2xUYWJsZVN0YWNrLmxh
c3QoKS5tX3N5bWJvbFRhYmxlLT5nZXQocHJvcGVydHkuaW1wbCgpKSwgbV9zeW1ib2xUYWJsZVN0
YWNrLmxhc3QoKS5tX3N5bWJvbFRhYmxlQ29uc3RhbnRJbmRleCwgc2hvdWxkVHJlYXRBc0xleGlj
YWxWYXJpYWJsZSk7CkBAIC0zNTkyLDcgKzM1OTMsNyBAQCB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9y
Ojpwb3BTY29wZWRDb250cm9sCiB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHVzaENhdGNo
U2NvcGUoY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHksIFJlZ2lzdGVySUQqIGV4Y2VwdGlvblZh
bHVlLCBWYXJpYWJsZUVudmlyb25tZW50JiBlbnZpcm9ubWVudCkKIHsKICAgICBSRUxFQVNFX0FT
U0VSVChlbnZpcm9ubWVudC5jb250YWlucyhwcm9wZXJ0eS5pbXBsKCkpKTsKLSAgICBwdXNoTGV4
aWNhbFNjb3BlSW50ZXJuYWwoZW52aXJvbm1lbnQsIHRydWUsIGZhbHNlLCBudWxscHRyLCBURFpS
ZXF1aXJlbWVudDo6Tm90VW5kZXJURFosIFNjb3BlVHlwZTo6Q2F0Y2hTY29wZSwgU2NvcGVSZWdp
c3RlclR5cGU6OkJsb2NrKTsKKyAgICBwdXNoTGV4aWNhbFNjb3BlSW50ZXJuYWwoZW52aXJvbm1l
bnQsIFREWkNoZWNrT3B0aW1pemF0aW9uOjpDYW5PcHRpbWl6ZSwgTmVzdGVkU2NvcGVUeXBlOjpJ
c05vdE5lc3RlZCwgbnVsbHB0ciwgVERaUmVxdWlyZW1lbnQ6Ok5vdFVuZGVyVERaLCBTY29wZVR5
cGU6OkNhdGNoU2NvcGUsIFNjb3BlUmVnaXN0ZXJUeXBlOjpCbG9jayk7CiAgICAgVmFyaWFibGUg
ZXhjZXB0aW9uVmFyID0gdmFyaWFibGUocHJvcGVydHkpOwogICAgIFJFTEVBU0VfQVNTRVJUKGV4
Y2VwdGlvblZhci5pc1Jlc29sdmVkKCkpOwogICAgIFJlZlB0cjxSZWdpc3RlcklEPiBzY29wZSA9
IGVtaXRSZXNvbHZlU2NvcGUobnVsbHB0ciwgZXhjZXB0aW9uVmFyKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9y
LmgJKHJldmlzaW9uIDE5NDMwMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNzAwLDExICs3MDAsMTMg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgT3Bjb2RlSUQgbGFzdE9wY29kZUlEKCkgY29u
c3QgeyByZXR1cm4gbV9sYXN0T3Bjb2RlSUQ7IH0KIAorICAgICAgICBlbnVtIGNsYXNzIFREWkNo
ZWNrT3B0aW1pemF0aW9uIHsgQ2FuT3B0aW1pemUsIENhbk5vdE9wdGltaXplIH07CisgICAgICAg
IGVudW0gY2xhc3MgTmVzdGVkU2NvcGVUeXBlIHsgSXNOZXN0ZWQsIElzTm90TmVzdGVkIH07CiAg
ICAgcHJpdmF0ZToKICAgICAgICAgZW51bSBjbGFzcyBURFpSZXF1aXJlbWVudCB7IFVuZGVyVERa
LCBOb3RVbmRlclREWiB9OwogICAgICAgICBlbnVtIGNsYXNzIFNjb3BlVHlwZSB7IENhdGNoU2Nv
cGUsIExldENvbnN0U2NvcGUsIEZ1bmN0aW9uTmFtZVNjb3BlIH07CiAgICAgICAgIGVudW0gY2xh
c3MgU2NvcGVSZWdpc3RlclR5cGUgeyBWYXIsIEJsb2NrIH07Ci0gICAgICAgIHZvaWQgcHVzaExl
eGljYWxTY29wZUludGVybmFsKFZhcmlhYmxlRW52aXJvbm1lbnQmLCBib29sIGNhbk9wdGltaXpl
VERaQ2hlY2tzLCBib29sIGlzTmVzdGVkTGV4aWNhbFNjb3BlLCBSZWdpc3RlcklEKiogY29uc3Rh
bnRTeW1ib2xUYWJsZVJlc3VsdCwgVERaUmVxdWlyZW1lbnQsIFNjb3BlVHlwZSwgU2NvcGVSZWdp
c3RlclR5cGUpOworICAgICAgICB2b2lkIHB1c2hMZXhpY2FsU2NvcGVJbnRlcm5hbChWYXJpYWJs
ZUVudmlyb25tZW50JiwgVERaQ2hlY2tPcHRpbWl6YXRpb24sIE5lc3RlZFNjb3BlVHlwZSwgUmVn
aXN0ZXJJRCoqIGNvbnN0YW50U3ltYm9sVGFibGVSZXN1bHQsIFREWlJlcXVpcmVtZW50LCBTY29w
ZVR5cGUsIFNjb3BlUmVnaXN0ZXJUeXBlKTsKICAgICAgICAgdm9pZCBwb3BMZXhpY2FsU2NvcGVJ
bnRlcm5hbChWYXJpYWJsZUVudmlyb25tZW50JiwgVERaUmVxdWlyZW1lbnQpOwogICAgICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBMb29rVXBWYXJLaW5kRnVuY3Rvcj4KICAgICAgICAgYm9vbCBpbnN0
YW50aWF0ZUxleGljYWxWYXJpYWJsZXMoY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCYsIFN5bWJv
bFRhYmxlKiwgU2NvcGVSZWdpc3RlclR5cGUsIExvb2tVcFZhcktpbmRGdW5jdG9yKTsKQEAgLTcx
NSw3ICs3MTcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBlbWl0TmV3RnVuY3Rp
b25FeHByZXNzaW9uQ29tbW9uKFJlZ2lzdGVySUQqLCBCYXNlRnVuY0V4cHJOb2RlKik7CiAKICAg
ICBwdWJsaWM6Ci0gICAgICAgIHZvaWQgcHVzaExleGljYWxTY29wZShWYXJpYWJsZUVudmlyb25t
ZW50Tm9kZSosIGJvb2wgY2FuT3B0aW1pemVURFpDaGVja3MsIGJvb2wgaXNOZXN0ZWRMZXhpY2Fs
U2NvcGUgPSBmYWxzZSwgUmVnaXN0ZXJJRCoqIGNvbnN0YW50U3ltYm9sVGFibGVSZXN1bHQgPSBu
dWxscHRyKTsKKyAgICAgICAgdm9pZCBwdXNoTGV4aWNhbFNjb3BlKFZhcmlhYmxlRW52aXJvbm1l
bnROb2RlKiwgVERaQ2hlY2tPcHRpbWl6YXRpb24sIE5lc3RlZFNjb3BlVHlwZSA9IE5lc3RlZFNj
b3BlVHlwZTo6SXNOb3ROZXN0ZWQsIFJlZ2lzdGVySUQqKiBjb25zdGFudFN5bWJvbFRhYmxlUmVz
dWx0ID0gbnVsbHB0cik7CiAgICAgICAgIHZvaWQgcG9wTGV4aWNhbFNjb3BlKFZhcmlhYmxlRW52
aXJvbm1lbnROb2RlKik7CiAgICAgICAgIHZvaWQgcHJlcGFyZUxleGljYWxTY29wZUZvck5leHRG
b3JMb29wSXRlcmF0aW9uKFZhcmlhYmxlRW52aXJvbm1lbnROb2RlKiwgUmVnaXN0ZXJJRCogbG9v
cFN5bWJvbFRhYmxlKTsKICAgICAgICAgaW50IGxhYmVsU2NvcGVEZXB0aCgpIGNvbnN0OwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2Rl
Z2VuLmNwcAkocmV2aXNpb24gMTk0MzAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDQ5LDcgKzIwNDks
NyBAQCB2b2lkIEJsb2NrTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuCiB7CiAgICAgaWYg
KCFtX3N0YXRlbWVudHMpCiAgICAgICAgIHJldHVybjsKLSAgICBnZW5lcmF0b3IucHVzaExleGlj
YWxTY29wZSh0aGlzLCB0cnVlLCB0cnVlKTsKKyAgICBnZW5lcmF0b3IucHVzaExleGljYWxTY29w
ZSh0aGlzLCBCeXRlY29kZUdlbmVyYXRvcjo6VERaQ2hlY2tPcHRpbWl6YXRpb246OkNhbk9wdGlt
aXplLCBCeXRlY29kZUdlbmVyYXRvcjo6TmVzdGVkU2NvcGVUeXBlOjpJc05lc3RlZCk7CiAgICAg
bV9zdGF0ZW1lbnRzLT5lbWl0Qnl0ZWNvZGUoZ2VuZXJhdG9yLCBkc3QpOwogICAgIGdlbmVyYXRv
ci5wb3BMZXhpY2FsU2NvcGUodGhpcyk7CiB9CkBAIC0yMjU0LDcgKzIyNTQsNyBAQCB2b2lkIEZv
ck5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyCiAgICAgTGFiZWxTY29wZVB0ciBzY29w
ZSA9IGdlbmVyYXRvci5uZXdMYWJlbFNjb3BlKExhYmVsU2NvcGU6Okxvb3ApOwogCiAgICAgUmVn
aXN0ZXJJRCogZm9yTG9vcFN5bWJvbFRhYmxlID0gbnVsbHB0cjsKLSAgICBnZW5lcmF0b3IucHVz
aExleGljYWxTY29wZSh0aGlzLCB0cnVlLCB0cnVlLCAmZm9yTG9vcFN5bWJvbFRhYmxlKTsKKyAg
ICBnZW5lcmF0b3IucHVzaExleGljYWxTY29wZSh0aGlzLCBCeXRlY29kZUdlbmVyYXRvcjo6VERa
Q2hlY2tPcHRpbWl6YXRpb246OkNhbk9wdGltaXplLCBCeXRlY29kZUdlbmVyYXRvcjo6TmVzdGVk
U2NvcGVUeXBlOjpJc05lc3RlZCwgJmZvckxvb3BTeW1ib2xUYWJsZSk7CiAKICAgICBnZW5lcmF0
b3IuZW1pdERlYnVnSG9vayhXaWxsRXhlY3V0ZVN0YXRlbWVudCwgZmlyc3RMaW5lKCksIHN0YXJ0
T2Zmc2V0KCksIGxpbmVTdGFydE9mZnNldCgpKTsKIApAQCAtMjM4Miw3ICsyMzgyLDcgQEAgdm9p
ZCBGb3JJbk5vZGU6OmVtaXRNdWx0aUxvb3BCeXRlY29kZShCeQogICAgIFJlZlB0cjxMYWJlbD4g
ZW5kID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7CiAKICAgICBSZWdpc3RlcklEKiBmb3JMb29wU3lt
Ym9sVGFibGUgPSBudWxscHRyOwotICAgIGdlbmVyYXRvci5wdXNoTGV4aWNhbFNjb3BlKHRoaXMs
IHRydWUsIHRydWUsICZmb3JMb29wU3ltYm9sVGFibGUpOworICAgIGdlbmVyYXRvci5wdXNoTGV4
aWNhbFNjb3BlKHRoaXMsIEJ5dGVjb2RlR2VuZXJhdG9yOjpURFpDaGVja09wdGltaXphdGlvbjo6
Q2FuT3B0aW1pemUsIEJ5dGVjb2RlR2VuZXJhdG9yOjpOZXN0ZWRTY29wZVR5cGU6OklzTmVzdGVk
LCAmZm9yTG9vcFN5bWJvbFRhYmxlKTsKIAogICAgIGdlbmVyYXRvci5lbWl0RGVidWdIb29rKFdp
bGxFeGVjdXRlU3RhdGVtZW50LCBmaXJzdExpbmUoKSwgc3RhcnRPZmZzZXQoKSwgbGluZVN0YXJ0
T2Zmc2V0KCkpOwogCkBAIC0yNTMyLDcgKzI1MzIsNyBAQCB2b2lkIEZvck9mTm9kZTo6ZW1pdEJ5
dGVjb2RlKEJ5dGVjb2RlR2VuCiAgICAgfQogCiAgICAgUmVnaXN0ZXJJRCogZm9yTG9vcFN5bWJv
bFRhYmxlID0gbnVsbHB0cjsKLSAgICBnZW5lcmF0b3IucHVzaExleGljYWxTY29wZSh0aGlzLCB0
cnVlLCB0cnVlLCAmZm9yTG9vcFN5bWJvbFRhYmxlKTsKKyAgICBnZW5lcmF0b3IucHVzaExleGlj
YWxTY29wZSh0aGlzLCBCeXRlY29kZUdlbmVyYXRvcjo6VERaQ2hlY2tPcHRpbWl6YXRpb246OkNh
bk9wdGltaXplLCBCeXRlY29kZUdlbmVyYXRvcjo6TmVzdGVkU2NvcGVUeXBlOjpJc05lc3RlZCwg
JmZvckxvb3BTeW1ib2xUYWJsZSk7CiAgICAgZ2VuZXJhdG9yLmVtaXREZWJ1Z0hvb2soV2lsbEV4
ZWN1dGVTdGF0ZW1lbnQsIGZpcnN0TGluZSgpLCBzdGFydE9mZnNldCgpLCBsaW5lU3RhcnRPZmZz
ZXQoKSk7CiAgICAgYXV0byBleHRyYWN0b3IgPSBbdGhpcywgZHN0XShCeXRlY29kZUdlbmVyYXRv
ciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiB2YWx1ZSkKICAgICB7CkBAIC0yODQ4LDcgKzI4NDgs
NyBAQCB2b2lkIFN3aXRjaE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlCiAKICAgICBSZWZQ
dHI8UmVnaXN0ZXJJRD4gcjAgPSBnZW5lcmF0b3IuZW1pdE5vZGUobV9leHByKTsKIAotICAgIGdl
bmVyYXRvci5wdXNoTGV4aWNhbFNjb3BlKHRoaXMsIGZhbHNlLCB0cnVlKTsKKyAgICBnZW5lcmF0
b3IucHVzaExleGljYWxTY29wZSh0aGlzLCBCeXRlY29kZUdlbmVyYXRvcjo6VERaQ2hlY2tPcHRp
bWl6YXRpb246OkNhbk5vdE9wdGltaXplLCBCeXRlY29kZUdlbmVyYXRvcjo6TmVzdGVkU2NvcGVU
eXBlOjpJc05lc3RlZCk7CiAgICAgbV9ibG9jay0+ZW1pdEJ5dGVjb2RlRm9yQmxvY2soZ2VuZXJh
dG9yLCByMC5nZXQoKSwgZHN0KTsKICAgICBnZW5lcmF0b3IucG9wTGV4aWNhbFNjb3BlKHRoaXMp
OwogCkBAIC0zMTgxLDcgKzMxODEsNyBAQCB2b2lkIENsYXNzRGVjbE5vZGU6OmVtaXRCeXRlY29k
ZShCeXRlY29kCiBSZWdpc3RlcklEKiBDbGFzc0V4cHJOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNv
ZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQogewogICAgIGlmICghbV9u
YW1lLmlzTnVsbCgpKQotICAgICAgICBnZW5lcmF0b3IucHVzaExleGljYWxTY29wZSh0aGlzLCB0
cnVlLCB0cnVlKTsKKyAgICAgICAgZ2VuZXJhdG9yLnB1c2hMZXhpY2FsU2NvcGUodGhpcywgQnl0
ZWNvZGVHZW5lcmF0b3I6OlREWkNoZWNrT3B0aW1pemF0aW9uOjpDYW5PcHRpbWl6ZSwgQnl0ZWNv
ZGVHZW5lcmF0b3I6Ok5lc3RlZFNjb3BlVHlwZTo6SXNOZXN0ZWQpOwogCiAgICAgUmVmUHRyPFJl
Z2lzdGVySUQ+IHN1cGVyY2xhc3M7CiAgICAgaWYgKG1fY2xhc3NIZXJpdGFnZSkgewo=
</data>
<flag name="review"
          id="292680"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
      

    </bug>

</bugzilla>