<?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>170494</bug_id>
          
          <creation_ts>2017-04-04 22:20:15 -0700</creation_ts>
          <short_desc>REGRESSION fix bad isWasm() test by ensuring proper Wasm callee bit pattern</short_desc>
          <delta_ts>2017-04-05 16:59:16 -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>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>saam</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1294375</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-04-04 22:20:15 -0700</bug_when>
    <thetext>https://build.webkit.org/builders/Apple%20Sierra%20Debug%20JSC%20%28Tests%29/builds/111
https://build.webkit.org/builders/Apple%20Sierra%2032-bit%20JSC%20%28BuildAndTest%29/builds/182

Dozens of failures on each.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294376</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-04-04 22:20:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/31446485&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294427</commentid>
    <comment_count>2</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-04-05 00:49:06 -0700</bug_when>
    <thetext>Looks like my patch. I&apos;ll check it out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294431</commentid>
    <comment_count>3</comment_count>
      <attachid>306268</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-04-05 01:16:48 -0700</bug_when>
    <thetext>Created attachment 306268
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294441</commentid>
    <comment_count>4</comment_count>
      <attachid>306268</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-05 01:52:08 -0700</bug_when>
    <thetext>Comment on attachment 306268
patch

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

This patch looks good. But I have a question about Wasm::Callee.

&gt; Source/JavaScriptCore/ChangeLog:20
&gt; +        the function a scarier name.

I think we still have a room to fill a pointer to JSValue&apos;s NaN boxing bit patterns.
Since Wasm::Callee is not gc-managed, dirty pointer in JSValue is OK without drastically changing the GC marking.
Is there any problem when assigning a new tag to Wasm::Callee in JSValue? For example, we can choose the tag `0b11` (TagBitTypeOther | true).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294519</commentid>
    <comment_count>5</comment_count>
      <attachid>306268</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-04-05 09:33:05 -0700</bug_when>
    <thetext>Comment on attachment 306268
patch

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

&gt; Source/JavaScriptCore/interpreter/CallFrame.h:-92
&gt; -            ASSERT(!callee().isWasm());

Can&apos;t you just assert that:
1, the callee() looks like a cell (i.e. is a pointer), and 
2. the callee() has WasmTag bit set?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294594</commentid>
    <comment_count>6</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-04-05 12:50:18 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #4)
&gt; Comment on attachment 306268 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=306268&amp;action=review
&gt; 
&gt; This patch looks good. But I have a question about Wasm::Callee.
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:20
&gt; &gt; +        the function a scarier name.
&gt; 
&gt; I think we still have a room to fill a pointer to JSValue&apos;s NaN boxing bit
&gt; patterns.
&gt; Since Wasm::Callee is not gc-managed, dirty pointer in JSValue is OK without
&gt; drastically changing the GC marking.
&gt; Is there any problem when assigning a new tag to Wasm::Callee in JSValue?
&gt; For example, we can choose the tag `0b11` (TagBitTypeOther | true).

If we used 0b011 to tag Wasm::Callee it&apos;d work. The isWasm() test would need to be something like this: 0b011 in the lower 3 bits, and 0xffff000000000000 &amp; ptr == 0 in the top bits. I&apos;ll switch to doing this. I think the full test for isWasm would be something like this:

isWasm(uintptr_t x) {
    return x &amp; 0xffff000000000007 == 3;
}

Does that look right to you?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294595</commentid>
    <comment_count>7</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-04-05 12:50:41 -0700</bug_when>
    <thetext>(In reply to Mark Lam from comment #5)
&gt; Comment on attachment 306268 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=306268&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/interpreter/CallFrame.h:-92
&gt; &gt; -            ASSERT(!callee().isWasm());
&gt; 
&gt; Can&apos;t you just assert that:
&gt; 1, the callee() looks like a cell (i.e. is a pointer), and 
&gt; 2. the callee() has WasmTag bit set?

The problem is that the callee might not look like this in this particular context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294603</commentid>
    <comment_count>8</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-04-05 13:08:26 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #6)
&gt; (In reply to Yusuke Suzuki from comment #4)
&gt; &gt; Comment on attachment 306268 [details]
&gt; &gt; patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=306268&amp;action=review
&gt; &gt; 
&gt; &gt; This patch looks good. But I have a question about Wasm::Callee.
&gt; &gt; 
&gt; &gt; &gt; Source/JavaScriptCore/ChangeLog:20
&gt; &gt; &gt; +        the function a scarier name.
&gt; &gt; 
&gt; &gt; I think we still have a room to fill a pointer to JSValue&apos;s NaN boxing bit
&gt; &gt; patterns.
&gt; &gt; Since Wasm::Callee is not gc-managed, dirty pointer in JSValue is OK without
&gt; &gt; drastically changing the GC marking.
&gt; &gt; Is there any problem when assigning a new tag to Wasm::Callee in JSValue?
&gt; &gt; For example, we can choose the tag `0b11` (TagBitTypeOther | true).
&gt; 
&gt; If we used 0b011 to tag Wasm::Callee it&apos;d work. The isWasm() test would need
&gt; to be something like this: 0b011 in the lower 3 bits, and 0xffff000000000000
&gt; &amp; ptr == 0 in the top bits. I&apos;ll switch to doing this. I think the full test
&gt; for isWasm would be something like this:
&gt; 
&gt; isWasm(uintptr_t x) {
&gt;     return x &amp; 0xffff000000000007 == 3;
&gt; }
&gt; 
&gt; Does that look right to you?

I just talked through this with Mark, and it&apos;s totally wrong. But, we can tell by the upper 16 bytes and lower 3 bits if the thing is Wasm. Here is how. We tag all Wasm callee&apos;s with 1 at the bottom, as we&apos;re doing now.
Notice the lower 3 bits of the other primitives are:

undefined: 0b010
null:      0b010
true:      0b111
false:     0b110

Then, the test simply be this:
isWasm(uintptr_t x) {
    return x &amp; 0xffff000000000007 == 1;
}

Notice it&apos;d fail for the above four immediate values. It&apos;d also fail for every single tagged number. It would also fail for normal cells.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294610</commentid>
    <comment_count>9</comment_count>
      <attachid>306268</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-05 13:26:33 -0700</bug_when>
    <thetext>Comment on attachment 306268
patch

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

&gt;&gt;&gt;&gt; Source/JavaScriptCore/ChangeLog:20
&gt;&gt;&gt;&gt; +        the function a scarier name.
&gt;&gt;&gt; 
&gt;&gt;&gt; I think we still have a room to fill a pointer to JSValue&apos;s NaN boxing bit patterns.
&gt;&gt;&gt; Since Wasm::Callee is not gc-managed, dirty pointer in JSValue is OK without drastically changing the GC marking.
&gt;&gt;&gt; Is there any problem when assigning a new tag to Wasm::Callee in JSValue? For example, we can choose the tag `0b11` (TagBitTypeOther | true).
&gt;&gt; 
&gt;&gt; If we used 0b011 to tag Wasm::Callee it&apos;d work. The isWasm() test would need to be something like this: 0b011 in the lower 3 bits, and 0xffff000000000000 &amp; ptr == 0 in the top bits. I&apos;ll switch to doing this. I think the full test for isWasm would be something like this:
&gt;&gt; 
&gt;&gt; isWasm(uintptr_t x) {
&gt;&gt;     return x &amp; 0xffff000000000007 == 3;
&gt;&gt; }
&gt;&gt; 
&gt;&gt; Does that look right to you?
&gt; 
&gt; I just talked through this with Mark, and it&apos;s totally wrong. But, we can tell by the upper 16 bytes and lower 3 bits if the thing is Wasm. Here is how. We tag all Wasm callee&apos;s with 1 at the bottom, as we&apos;re doing now.
&gt; Notice the lower 3 bits of the other primitives are:
&gt; 
&gt; undefined: 0b010
&gt; null:      0b010
&gt; true:      0b111
&gt; false:     0b110
&gt; 
&gt; Then, the test simply be this:
&gt; isWasm(uintptr_t x) {
&gt;     return x &amp; 0xffff000000000007 == 1;
&gt; }
&gt; 
&gt; Notice it&apos;d fail for the above four immediate values. It&apos;d also fail for every single tagged number. It would also fail for normal cells.

I think having TagBitTypeOther (0b10) too is good.
We use TagMask (TagTypeNumber | TagBitTypeOther) to distinguish Cells from the other values.
So, by categorizing Wasm::Callee to Other, we can still keep the fast `isCell()` correct. (it will return false!)

And 0b11 also does not have TagTypeNumber, TagBitUndefined and TagBitBool. So other predicates (like isBoolean(), isUndefinedOrNull(), isUndefined()) just work I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294613</commentid>
    <comment_count>10</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-04-05 13:31:05 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #9)
&gt; Comment on attachment 306268 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=306268&amp;action=review
&gt; 
&gt; &gt;&gt;&gt;&gt; Source/JavaScriptCore/ChangeLog:20
&gt; &gt;&gt;&gt;&gt; +        the function a scarier name.
&gt; &gt;&gt;&gt; 
&gt; &gt;&gt;&gt; I think we still have a room to fill a pointer to JSValue&apos;s NaN boxing bit patterns.
&gt; &gt;&gt;&gt; Since Wasm::Callee is not gc-managed, dirty pointer in JSValue is OK without drastically changing the GC marking.
&gt; &gt;&gt;&gt; Is there any problem when assigning a new tag to Wasm::Callee in JSValue? For example, we can choose the tag `0b11` (TagBitTypeOther | true).
&gt; &gt;&gt; 
&gt; &gt;&gt; If we used 0b011 to tag Wasm::Callee it&apos;d work. The isWasm() test would need to be something like this: 0b011 in the lower 3 bits, and 0xffff000000000000 &amp; ptr == 0 in the top bits. I&apos;ll switch to doing this. I think the full test for isWasm would be something like this:
&gt; &gt;&gt; 
&gt; &gt;&gt; isWasm(uintptr_t x) {
&gt; &gt;&gt;     return x &amp; 0xffff000000000007 == 3;
&gt; &gt;&gt; }
&gt; &gt;&gt; 
&gt; &gt;&gt; Does that look right to you?
&gt; &gt; 
&gt; &gt; I just talked through this with Mark, and it&apos;s totally wrong. But, we can tell by the upper 16 bytes and lower 3 bits if the thing is Wasm. Here is how. We tag all Wasm callee&apos;s with 1 at the bottom, as we&apos;re doing now.
&gt; &gt; Notice the lower 3 bits of the other primitives are:
&gt; &gt; 
&gt; &gt; undefined: 0b010
&gt; &gt; null:      0b010
&gt; &gt; true:      0b111
&gt; &gt; false:     0b110
&gt; &gt; 
&gt; &gt; Then, the test simply be this:
&gt; &gt; isWasm(uintptr_t x) {
&gt; &gt;     return x &amp; 0xffff000000000007 == 1;
&gt; &gt; }
&gt; &gt; 
&gt; &gt; Notice it&apos;d fail for the above four immediate values. It&apos;d also fail for every single tagged number. It would also fail for normal cells.
&gt; 
&gt; I think having TagBitTypeOther (0b10) too is good.
&gt; We use TagMask (TagTypeNumber | TagBitTypeOther) to distinguish Cells from
&gt; the other values.
&gt; So, by categorizing Wasm::Callee to Other, we can still keep the fast
&gt; `isCell()` correct. (it will return false!)
&gt; 
&gt; And 0b11 also does not have TagTypeNumber, TagBitUndefined and TagBitBool.
&gt; So other predicates (like isBoolean(), isUndefinedOrNull(), isUndefined())
&gt; just work I think.
Yeah we might as well do this too. We won&apos;t use this property right now, but I could see it coming in handy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294619</commentid>
    <comment_count>11</comment_count>
      <attachid>306307</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-04-05 13:46:24 -0700</bug_when>
    <thetext>Created attachment 306307
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294622</commentid>
    <comment_count>12</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-05 13:48:52 -0700</bug_when>
    <thetext>Attachment 306307 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/JSCJSValue.h:437:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/runtime/JSCJSValue.h:438:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/runtime/JSCJSValue.h:444:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/runtime/JSCJSValue.h:445:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/runtime/JSCJSValue.h:446:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/ChangeLog:14:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 6 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294623</commentid>
    <comment_count>13</comment_count>
      <attachid>306309</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-04-05 13:49:04 -0700</bug_when>
    <thetext>Created attachment 306309
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294625</commentid>
    <comment_count>14</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-05 13:52:10 -0700</bug_when>
    <thetext>Attachment 306309 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/JSCJSValue.h:437:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/runtime/JSCJSValue.h:438:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/runtime/JSCJSValue.h:444:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/runtime/JSCJSValue.h:445:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/runtime/JSCJSValue.h:446:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/ChangeLog:14:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 6 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294626</commentid>
    <comment_count>15</comment_count>
      <attachid>306309</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-05 13:54:03 -0700</bug_when>
    <thetext>Comment on attachment 306309
patch

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

r=me, nice.

&gt; Source/JavaScriptCore/interpreter/CalleeBits.h:66
&gt; +#if ENABLE(WEBASSEMBLY)
&gt; +        return (bitwise_cast&lt;uintptr_t&gt;(m_ptr) &amp; TagWasmMask) == TagBitsWasm;
&gt; +#else
&gt; +        return false;
&gt; +#endif

I think this if-def is not necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294629</commentid>
    <comment_count>16</comment_count>
      <attachid>306309</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-04-05 13:57:37 -0700</bug_when>
    <thetext>Comment on attachment 306309
patch

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

r=me too with suggestions.

&gt; Source/JavaScriptCore/ChangeLog:24
&gt; +        The test succeeds for all of these because non have just the value 3 in their lower 3 bits.
&gt; +        The test also succeeds for numbers, because they have non-zero upper 16 bits.
&gt; +        The test also succeeds for normal cells because they won&apos;t have the number 3 as

Ditto.  Same feedback as below ... recommend use &quot;rejects&quot; instead of &quot;succeeds&quot;.

&gt;&gt; Source/JavaScriptCore/interpreter/CalleeBits.h:66
&gt;&gt; +#endif
&gt; 
&gt; I think this if-def is not necessary.

It is needed for 32-bit builds.

&gt; Source/JavaScriptCore/runtime/JSCJSValue.h:449
&gt; +    // The test succeeds for all of these because non have just the value 3 in their lower 3 bits.
&gt; +    // The test also succeeds for numbers, because they have non-zero upper 16 bits.
&gt; +    // The test also succeeds for normal cells because they won&apos;t have the number 3 as

&quot;succeeds&quot; here reads like the &quot;will return true&quot;.  How about saying &quot;The test rejects ...&quot; instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294634</commentid>
    <comment_count>17</comment_count>
      <attachid>306309</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2017-04-05 14:00:06 -0700</bug_when>
    <thetext>Comment on attachment 306309
patch

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

&gt; Source/JavaScriptCore/ChangeLog:22
&gt; +        The test succeeds for all of these because non have just the value 3 in their lower 3 bits.

*none*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294637</commentid>
    <comment_count>18</comment_count>
      <attachid>306311</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-04-05 14:04:22 -0700</bug_when>
    <thetext>Created attachment 306311
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294638</commentid>
    <comment_count>19</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-05 14:05:11 -0700</bug_when>
    <thetext>Attachment 306311 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/JSCJSValue.h:437:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/runtime/JSCJSValue.h:438:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/runtime/JSCJSValue.h:444:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/runtime/JSCJSValue.h:445:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/runtime/JSCJSValue.h:446:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/ChangeLog:14:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 6 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294683</commentid>
    <comment_count>20</comment_count>
      <attachid>306311</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-05 16:01:51 -0700</bug_when>
    <thetext>Comment on attachment 306311
patch for landing

Rejecting attachment 306311 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 306311, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
    -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 214970 = d15f8e3db6e722ee6988a296363be1763b6c1140
r214973 = ea5477036d9c4bc0e8af899bffec4d6afa6c1c70
r214974 = 7245903ff93c5e131d3b24f80e4b3956f3fd74d5
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: http://webkit-queues.webkit.org/results/3481314</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294696</commentid>
    <comment_count>21</comment_count>
      <attachid>306332</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-04-05 16:19:49 -0700</bug_when>
    <thetext>Created attachment 306332
patch for landing

remove tab</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294718</commentid>
    <comment_count>22</comment_count>
      <attachid>306332</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-05 16:59:14 -0700</bug_when>
    <thetext>Comment on attachment 306332
patch for landing

Clearing flags on attachment: 306332

Committed r214979: &lt;http://trac.webkit.org/changeset/214979&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1294719</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-05 16:59:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306268</attachid>
            <date>2017-04-05 01:16:48 -0700</date>
            <delta_ts>2017-04-05 13:46:24 -0700</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>4517</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjE0OTM2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBA
CisyMDE3LTA0LTA1ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFJFR1JFU1NJT04gcjIxNDkwNSBhZGRlZCBhbiBpbnZhbGlkIGFzc2VydGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNDk0CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8zMTQ0NjQ4NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXaGVuIG1ha2luZyBhIEpTIGNhbGwsIHdlIHdlcmUgYXNzZXJ0aW5n
IHRoYXQgdGhlIGNhbGxlZSBiZWluZworICAgICAgICBjYWxsZWQgd2Fzbid0IFdhc20uIEhvd2V2
ZXIsIHRoZSBjYWxsZWUgY2FuIGJlIGFuIGFyYml0cmFyeSBKU1ZhbHVlLgorICAgICAgICBCZWNh
dXNlIG9mIHRoaXMsIGluIHRoZXNlIHNjZW5hcmlvcywgd2UgY2FuJ3QgZGlzdGluZ3Vpc2ggYSBX
YXNtCisgICAgICAgIGNhbGxlZSBmcm9tIGEgSlMgY2FsbGVlIGp1c3QgZnJvbSBpdHMgYml0IHBh
dHRlcm4uIFRoZXJlZm9yZSwgdGhlCisgICAgICAgIGFzc2VydGlvbiBkb2VzIG5vdCBob2xkLiBI
b3dldmVyLCB3ZSBhcmUgY2FsbGluZyB0aGUgZ3VhcmFudGVlZEpTVmFsdWVDYWxsZWUoKQorICAg
ICAgICBtZXRob2Qgb24gQ2FsbEZyYW1lIG9ubHkgdW5kZXIgc3RyaWN0IGd1YXJhbnRlZXMgdGhh
dCB0aGUgY2FsbGVlCisgICAgICAgIG11c3QgYmUgYSBKU1ZhbHVlLiBUaGlzIG1ldGhvZCBzaG91
bGQgYmFzaWNhbGx5IG5ldmVyIGJlIHVzZWQuCisgICAgICAgIEluIGdlbmVyYWwsIGEgY2FsbGVl
IGNhbid0IGJlIGEgbm9uLWNlbGwgdmFsdWUgaWYgaXQncyBhIEpTIENhbGxlZS4KKyAgICAgICAg
SG93ZXZlciwgdGhlcmUgaXMgdGhpcyBzbWFsbCB3aW5kb3cgd2hlcmUgd2UgYWxsb3cgaXQgdG8g
YmUgYSBub24tY2VsbAorICAgICAgICBKUyBjYWxsZWUuIEluIHRoaXMgd2luZG93LCBpZiB3ZSBk
ZXRlY3QgdGhlIEpTVmFsdWUgaXNuJ3QgYSBjZWxsLCB3ZQorICAgICAgICB0aHJvdyBhbiBleGNl
cHRpb24uIFRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgZXJyb25lb3VzIGFzc2VydCBhbmQgZ2l2ZXMK
KyAgICAgICAgdGhlIGZ1bmN0aW9uIGEgc2NhcmllciBuYW1lLgorCisgICAgICAgICogaW50ZXJw
cmV0ZXIvQ2FsbEZyYW1lLmg6CisgICAgICAgIChKU0M6OkV4ZWNTdGF0ZTo6Z3VhcmFudGVlZEpT
VmFsdWVDYWxsZWUpOgorICAgICAgICAoSlNDOjpFeGVjU3RhdGU6OmNhbGxlZUFzVmFsdWUpOiBE
ZWxldGVkLgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKwogMjAxNy0wNC0wNSAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgSW1w
bGVtZW50IFByb21pc2VEZWZlcnJlZFRpbWVyIGZvciBub24gQ0YgYmFzZWQgcG9ydHMKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgJKHJldmlz
aW9uIDIxNDkzNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJh
bWUuaAkod29ya2luZyBjb3B5KQpAQCAtODcsOSArODcsMTcgQEAgbmFtZXNwYWNlIEpTQyAgewog
ICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBoZWFkZXJTaXplSW5SZWdpc3Rl
cnMgPSBDYWxsRnJhbWVTbG90Ojphcmd1bWVudENvdW50ICsgMTsKIAotICAgICAgICBKU1ZhbHVl
IGNhbGxlZUFzVmFsdWUoKSBjb25zdAorICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNob3VsZCBv
bmx5IGJlIGNhbGxlZCBpbiB2ZXJ5IHNwZWNpZmljIGNpcmN1bXN0YW5jZXMKKyAgICAgICAgLy8g
d2hlbiB5b3UndmUgZ3VhcmFudGVlZCB0aGUgY2FsbGVlIGNhbid0IGJlIGEgV2FzbSBjYWxsZWUs
IGFuZCBjYW4KKyAgICAgICAgLy8gYmUgYW4gYXJiaXRyYXJ5IEpTVmFsdWUuIFRoZSByZWFzb24g
Zm9yIHRoaXMgaXMgdGhhdCB0aGUgaWYgdGhlIGNhbGxlZQorICAgICAgICAvLyBjYW4gdHJ1bHkg
YmUgYW4gYXJiaXRyYXJ5IEpTVmFsdWUsIHdlIHdvbid0IGJlIGFibGUgdG8gZGlzdGluZ3Vpc2gK
KyAgICAgICAgLy8gaXQgZnJvbSBhIFdhc20gY2FsbGVlLiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBi
YXNpY2FsbHkgbmV2ZXIgYmUgdXNlZC4KKyAgICAgICAgLy8gSXRzIG9ubHkgdXNlIHJpZ2h0IG5v
dyBpcyB3aGVuIHdlIGFyZSBtYWtpbmcgYSBjYWxsLCBhbmQgd2UncmUgbm90CisgICAgICAgIC8v
IHlldCBzdXJlIGlmIHRoZSBjYWxsZWUgaXMgYSBjZWxsLiBJbiBnZW5lcmFsLCBhIEpTIGNhbGxl
ZSBpcyBndWFyYW50ZWVkCisgICAgICAgIC8vIHRvIGJlIGEgY2VsbCwgaG93ZXZlciwgdGhlcmUg
aXMgYSBicmllZiB3aW5kb3cgd2hlcmUgd2UgbmVlZCB0byBjaGVjaworICAgICAgICAvLyB0byBz
ZWUgaWYgaXQncyBhIGNlbGwsIGFuZCBpZiBpdCdzIG5vdCwgd2UgdGhyb3cgYW4gZXhjZXB0aW9u
LgorICAgICAgICBKU1ZhbHVlIGd1YXJhbnRlZWRKU1ZhbHVlQ2FsbGVlKCkgY29uc3QKICAgICAg
ICAgewotICAgICAgICAgICAgQVNTRVJUKCFjYWxsZWUoKS5pc1dhc20oKSk7CiAgICAgICAgICAg
ICByZXR1cm4gdGhpc1tDYWxsRnJhbWVTbG90OjpjYWxsZWVdLmpzVmFsdWUoKTsKICAgICAgICAg
fQogICAgICAgICBKU09iamVjdCoganNDYWxsZWUoKSBjb25zdApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCShyZXZpc2lvbiAyMTQ5MzYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04MzQsNyArODM0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25DYQogCiAgICAgZXhlY0NhbGxlZS0+c2V0Q29kZUJsb2NrKDApOwogICAgIAotICAgIGlmICgh
aXNIb3N0RnVuY3Rpb24oZXhlY0NhbGxlZS0+Y2FsbGVlQXNWYWx1ZSgpLCBnbG9iYWxGdW5jRXZh
bCkpCisgICAgaWYgKCFpc0hvc3RGdW5jdGlvbihleGVjQ2FsbGVlLT5ndWFyYW50ZWVkSlNWYWx1
ZUNhbGxlZSgpLCBnbG9iYWxGdW5jRXZhbCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoSlNWYWx1ZSgpKTsKIAogICAgIEpTVmFsdWUgcmVzdWx0ID0gZXZhbChleGVjQ2FsbGVlKTsK
QEAgLTkxNyw3ICs5MTcsNyBAQCBTbG93UGF0aFJldHVyblR5cGUgSklUX09QRVJBVElPTiBvcGVy
YXRpCiAgICAgCiAgICAgUkVMRUFTRV9BU1NFUlQoIWNhbGxMaW5rSW5mby0+aXNEaXJlY3QoKSk7
CiAgICAgCi0gICAgSlNWYWx1ZSBjYWxsZWVBc1ZhbHVlID0gZXhlY0NhbGxlZS0+Y2FsbGVlQXNW
YWx1ZSgpOworICAgIEpTVmFsdWUgY2FsbGVlQXNWYWx1ZSA9IGV4ZWNDYWxsZWUtPmd1YXJhbnRl
ZWRKU1ZhbHVlQ2FsbGVlKCk7CiAgICAgSlNDZWxsKiBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCA9IGdl
dEpTRnVuY3Rpb24oY2FsbGVlQXNWYWx1ZSk7CiAgICAgaWYgKCFjYWxsZWVBc0Z1bmN0aW9uQ2Vs
bCkgewogICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNhY2hlIHRoZXNlIGtpbmRzIG9mIGNh
bGxzLiBUaGV5IGNhbiBiZSBjb21tb24gYW5kIGN1cnJlbnRseSB0aGV5IGFyZQpAQCAtMTAzNCw3
ICsxMDM0LDcgQEAgaW5saW5lIFNsb3dQYXRoUmV0dXJuVHlwZSB2aXJ0dWFsRm9yV2l0aAogICAg
IENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCA9IGNhbGxMaW5rSW5mby0+c3BlY2lhbGl6YXRp
b25LaW5kKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CiAK
LSAgICBKU1ZhbHVlIGNhbGxlZUFzVmFsdWUgPSBleGVjQ2FsbGVlLT5jYWxsZWVBc1ZhbHVlKCk7
CisgICAgSlNWYWx1ZSBjYWxsZWVBc1ZhbHVlID0gZXhlY0NhbGxlZS0+Z3VhcmFudGVlZEpTVmFs
dWVDYWxsZWUoKTsKICAgICBjYWxsZWVBc0Z1bmN0aW9uQ2VsbCA9IGdldEpTRnVuY3Rpb24oY2Fs
bGVlQXNWYWx1ZSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYWxsZWVBc0Z1bmN0aW9uQ2VsbCkpCiAg
ICAgICAgIHJldHVybiBoYW5kbGVIb3N0Q2FsbChleGVjQ2FsbGVlLCBjYWxsZWVBc1ZhbHVlLCBj
YWxsTGlua0luZm8pOwo=
</data>
<flag name="review"
          id="327619"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306307</attachid>
            <date>2017-04-05 13:46:24 -0700</date>
            <delta_ts>2017-04-05 13:49:04 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>8536</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjE0OTY1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBA
CisyMDE3LTA0LTA1ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFJFR1JFU1NJT04gZml4IGJhZCBpc1dhc20oKSB0ZXN0IGJ5IGVuc3VyaW5nIHByb3BlciBXYXNt
IGNhbGxlZSBiaXQgcGF0dGVybgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTcwNDk0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTQ0NjQ4NT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNo
IGZpeGVzIGhvdyB3ZSB0ZXN0IGEgNjQgYml0IEpTVmFsdWUgcGF0dGVybiB0byBzZWUgaWYgaXQn
cworICAgICAgICBhIFdhc20gY2FsbGVlLiBXZSBub3cgdGFnIFdhc206OkNhbGxlZSdzIHdpdGgg
MGIwMTEgaW4gdGhlaXIgbG93ZXIgMyBiaXRzLgorICAgICAgICBUaGUgbmV3IHRlc3QgaXMgZm9y
IGEgV2FzbSBDYWxsZWUgaXMgYXMgZm9sbG93czoKKyAgICAgICAgaXNXYXNtKHVpbnQ2NF90IHgp
CisgICAgICAgIHsKKyAgICAgICAgCXJldHVybiB4ICYgMHhmZmZmMDAwMDAwMDAwMDA3ID09IDMK
KyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgVGhpcyB0ZXN0IHdvcmtzIGJlY2F1c2UgdGhl
IGxvd2VyIDMgYml0cyBvZiB0aGUgbm9uLW51bWJlciBpbW1lZGlhdGUgdmFsdWVzIGFyZSBhcyBm
b2xsb3dzOgorICAgICAgICB1bmRlZmluZWQ6IDBiMDEwCisgICAgICAgIG51bGw6ICAgICAgMGIw
MTAKKyAgICAgICAgdHJ1ZTogICAgICAwYjExMQorICAgICAgICBmYWxzZTogICAgIDBiMTEwCisg
ICAgICAgIFRoZSB0ZXN0IHN1Y2NlZWRzIGZvciBhbGwgb2YgdGhlc2UgYmVjYXVzZSBub24gaGF2
ZSBqdXN0IHRoZSB2YWx1ZSAzIGluIHRoZWlyIGxvd2VyIDMgYml0cy4KKyAgICAgICAgVGhlIHRl
c3QgYWxzbyBzdWNjZWVkcyBmb3IgbnVtYmVycywgYmVjYXVzZSB0aGV5IGhhdmUgbm9uLXplcm8g
dXBwZXIgMTYgYml0cy4KKyAgICAgICAgVGhlIHRlc3QgYWxzbyBzdWNjZWVkcyBmb3Igbm9ybWFs
IGNlbGxzIGJlY2F1c2UgdGhleSB3b24ndCBoYXZlIHRoZSBudW1iZXIgMyBhcworICAgICAgICB0
aGVpciBsb3dlciAzIGJpdHMuIE5vdGUsIHRoaXMgYml0IHBhdHRlcm4gYWxzbyBhbGxvd3MgdGhl
IG5vcm1hbCBKU1ZhbHVlIGlzQ2VsbCgpLCBldGMsCisgICAgICAgIHByZWRpY2F0ZXMgdG8gd29y
ayBvbiBhIFdhc206OkNhbGxlZSBiZWNhdXNlIHRoZSB2YXJpb3VzIHRlc3RzIHdpbGwgZmFpbCBp
ZiB5b3UKKyAgICAgICAgYml0IGNhc3RlZCBhIGJveGVkIFdhc206OkNhbGxlZSogdG8gYSBKU1Zh
bHVlLiBpc0NlbGwoKSB3b3VsZCBmYWlsIHNpbmNlIGl0IHNlZXMKKyAgICAgICAgVGFnQml0VHlw
ZU90aGVyLiBUaGUgb3RoZXIgdGVzdHMgYWxzbyB0cml2aWFsbHkgZmFpbCwgc2luY2UgaXQgd29u
J3QgYmUgYSBudW1iZXIsCisgICAgICAgIGFuZCBpdCB3b24ndCBiZSBlcXVhbCB0byBudWxsLCB1
bmRlZmluZWQsIHRydWUsIG9yIGZhbHNlLiBUaGUgaXNCb29sZWFuKCkgcHJlZGljYXRlCisgICAg
ICAgIHdpbGwgZmFpbCBiZWNhdXNlIHdlIHdvbid0IGhhdmUgVGFnQml0Qm9vbCBzZXQuCisKKyAg
ICAgICAgKiBpbnRlcnByZXRlci9DYWxsRnJhbWUuaDoKKyAgICAgICAgKEpTQzo6RXhlY1N0YXRl
OjpndWFyYW50ZWVkSlNWYWx1ZUNhbGxlZSk6CisgICAgICAgIChKU0M6OkV4ZWNTdGF0ZTo6Y2Fs
bGVlQXNWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgICogaW50ZXJwcmV0ZXIvQ2FsbGVlQml0cy5o
OgorICAgICAgICAoSlNDOjpDYWxsZWVCaXRzOjpib3hXYXNtKToKKyAgICAgICAgKEpTQzo6Q2Fs
bGVlQml0czo6aXNXYXNtKToKKyAgICAgICAgKEpTQzo6Q2FsbGVlQml0czo6YXNXYXNtQ2FsbGVl
KToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogcnVudGltZS9K
U0NKU1ZhbHVlLmg6CisKIDIwMTctMDQtMDUgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViQXNzZW1ibHk6IFdlIHNob3VsZG4ndCBuZWVkIHRvIHBp
biBzaXplIHJlZ2lzdGVycyBpZiB3ZSBoYXZlIGEgZmFzdCBtZW1vcnkuCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCShyZXZpc2lvbiAyMTQ5
NjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgJKHdv
cmtpbmcgY29weSkKQEAgLTg3LDcgKzg3LDE0IEBAIG5hbWVzcGFjZSBKU0MgIHsKICAgICBwdWJs
aWM6CiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgaGVhZGVyU2l6ZUluUmVnaXN0ZXJzID0gQ2Fs
bEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudCArIDE7CiAKLSAgICAgICAgSlNWYWx1ZSBjYWxsZWVB
c1ZhbHVlKCkgY29uc3QKKyAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiBzaG91bGQgb25seSBiZSBj
YWxsZWQgaW4gdmVyeSBzcGVjaWZpYyBjaXJjdW1zdGFuY2VzCisgICAgICAgIC8vIHdoZW4geW91
J3ZlIGd1YXJhbnRlZWQgdGhlIGNhbGxlZSBjYW4ndCBiZSBhIFdhc20gY2FsbGVlLCBhbmQgY2Fu
CisgICAgICAgIC8vIGJlIGFuIGFyYml0cmFyeSBKU1ZhbHVlLiBUaGlzIGZ1bmN0aW9uIHNob3Vs
ZCBiYXNpY2FsbHkgbmV2ZXIgYmUgdXNlZC4KKyAgICAgICAgLy8gSXRzIG9ubHkgdXNlIHJpZ2h0
IG5vdyBpcyB3aGVuIHdlIGFyZSBtYWtpbmcgYSBjYWxsLCBhbmQgd2UncmUgbm90CisgICAgICAg
IC8vIHlldCBzdXJlIGlmIHRoZSBjYWxsZWUgaXMgYSBjZWxsLiBJbiBnZW5lcmFsLCBhIEpTIGNh
bGxlZSBpcyBndWFyYW50ZWVkCisgICAgICAgIC8vIHRvIGJlIGEgY2VsbCwgaG93ZXZlciwgdGhl
cmUgaXMgYSBicmllZiB3aW5kb3cgd2hlcmUgd2UgbmVlZCB0byBjaGVjaworICAgICAgICAvLyB0
byBzZWUgaWYgaXQncyBhIGNlbGwsIGFuZCBpZiBpdCdzIG5vdCwgd2UgdGhyb3cgYW4gZXhjZXB0
aW9uLgorICAgICAgICBKU1ZhbHVlIGd1YXJhbnRlZWRKU1ZhbHVlQ2FsbGVlKCkgY29uc3QKICAg
ICAgICAgewogICAgICAgICAgICAgQVNTRVJUKCFjYWxsZWUoKS5pc1dhc20oKSk7CiAgICAgICAg
ICAgICByZXR1cm4gdGhpc1tDYWxsRnJhbWVTbG90OjpjYWxsZWVdLmpzVmFsdWUoKTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsZWVCaXRzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxlZUJpdHMuaAkocmV2
aXNpb24gMjE0OTYyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxl
ZUJpdHMuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+
CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtMzYsNyArMzcsNiBAQCBjbGFzcyBDYWxsZWU7CiBjbGFz
cyBKU0NlbGw7CiAKIGNsYXNzIENhbGxlZUJpdHMgewotICAgIHN0YXRpYyBjb25zdGV4cHIgdWlu
dHB0cl90IHdhc21UYWcgPSAxOwogcHVibGljOgogICAgIENhbGxlZUJpdHMoKSA9IGRlZmF1bHQ7
CiAgICAgQ2FsbGVlQml0cyh2b2lkKiBwdHIpIDogbV9wdHIocHRyKSB7IH0gCkBAIC00OCwxMyAr
NDgsMjMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCisjaWYgRU5B
QkxFKFdFQkFTU0VNQkxZKQogICAgIHN0YXRpYyB2b2lkKiBib3hXYXNtKFdhc206OkNhbGxlZSog
Y2FsbGVlKQogICAgIHsKLSAgICAgICAgQVNTRVJUKCEoYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4o
Y2FsbGVlKSAmIHdhc21UYWcpKTsKLSAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDx2b2lkKj4o
Yml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oY2FsbGVlKSB8IHdhc21UYWcpOworICAgICAgICBDYWxs
ZWVCaXRzIHJlc3VsdChiaXR3aXNlX2Nhc3Q8dm9pZCo+KGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+
KGNhbGxlZSkgfCBUYWdCaXRzV2FzbSkpOworICAgICAgICBBU1NFUlQocmVzdWx0LmlzV2FzbSgp
KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC5yYXdQdHIoKTsKICAgICB9CisjZW5kaWYKIAotICAg
IGJvb2wgaXNXYXNtKCkgY29uc3QgeyByZXR1cm4gYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4obV9w
dHIpICYgd2FzbVRhZzsgfQorICAgIGJvb2wgaXNXYXNtKCkgY29uc3QKKyAgICB7CisjaWYgRU5B
QkxFKFdFQkFTU0VNQkxZKQorICAgICAgICByZXR1cm4gKGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+
KG1fcHRyKSAmIFRhZ1dhc20pID09IFRhZ0JpdHNXYXNtOworI2Vsc2UKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworI2VuZGlmCisgICAgfQogICAgIGJvb2wgaXNDZWxsKCkgY29uc3QgeyByZXR1cm4g
IWlzV2FzbSgpOyB9CiAKICAgICBKU0NlbGwqIGFzQ2VsbCgpIGNvbnN0CkBAIC02MywxMSArNzMs
MTMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNDZWxsKj4obV9wdHIp
OwogICAgIH0KIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICBXYXNtOjpDYWxsZWUqIGFz
V2FzbUNhbGxlZSgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQoaXNXYXNtKCkpOwotICAg
ICAgICByZXR1cm4gYml0d2lzZV9jYXN0PFdhc206OkNhbGxlZSo+KGJpdHdpc2VfY2FzdDx1aW50
cHRyX3Q+KG1fcHRyKSAmIH53YXNtVGFnKTsKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxX
YXNtOjpDYWxsZWUqPihiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihtX3B0cikgJiB+VGFnQml0c1dh
c20pOwogICAgIH0KKyNlbmRpZgogCiAgICAgdm9pZCogcmF3UHRyKCkgY29uc3QgeyByZXR1cm4g
bV9wdHI7IH0KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0
aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmNwcAkocmV2aXNpb24gMjE0OTYyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODM0LDcgKzgzNCw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2EKIAogICAgIGV4ZWNDYWxsZWUt
PnNldENvZGVCbG9jaygwKTsKICAgICAKLSAgICBpZiAoIWlzSG9zdEZ1bmN0aW9uKGV4ZWNDYWxs
ZWUtPmNhbGxlZUFzVmFsdWUoKSwgZ2xvYmFsRnVuY0V2YWwpKQorICAgIGlmICghaXNIb3N0RnVu
Y3Rpb24oZXhlY0NhbGxlZS0+Z3VhcmFudGVlZEpTVmFsdWVDYWxsZWUoKSwgZ2xvYmFsRnVuY0V2
YWwpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CiAKICAgICBK
U1ZhbHVlIHJlc3VsdCA9IGV2YWwoZXhlY0NhbGxlZSk7CkBAIC05MTcsNyArOTE3LDcgQEAgU2xv
d1BhdGhSZXR1cm5UeXBlIEpJVF9PUEVSQVRJT04gb3BlcmF0aQogICAgIAogICAgIFJFTEVBU0Vf
QVNTRVJUKCFjYWxsTGlua0luZm8tPmlzRGlyZWN0KCkpOwogICAgIAotICAgIEpTVmFsdWUgY2Fs
bGVlQXNWYWx1ZSA9IGV4ZWNDYWxsZWUtPmNhbGxlZUFzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIGNh
bGxlZUFzVmFsdWUgPSBleGVjQ2FsbGVlLT5ndWFyYW50ZWVkSlNWYWx1ZUNhbGxlZSgpOwogICAg
IEpTQ2VsbCogY2FsbGVlQXNGdW5jdGlvbkNlbGwgPSBnZXRKU0Z1bmN0aW9uKGNhbGxlZUFzVmFs
dWUpOwogICAgIGlmICghY2FsbGVlQXNGdW5jdGlvbkNlbGwpIHsKICAgICAgICAgLy8gRklYTUU6
IFdlIHNob3VsZCBjYWNoZSB0aGVzZSBraW5kcyBvZiBjYWxscy4gVGhleSBjYW4gYmUgY29tbW9u
IGFuZCBjdXJyZW50bHkgdGhleSBhcmUKQEAgLTEwMzQsNyArMTAzNCw3IEBAIGlubGluZSBTbG93
UGF0aFJldHVyblR5cGUgdmlydHVhbEZvcldpdGgKICAgICBDb2RlU3BlY2lhbGl6YXRpb25LaW5k
IGtpbmQgPSBjYWxsTGlua0luZm8tPnNwZWNpYWxpemF0aW9uS2luZCgpOwogICAgIE5hdGl2ZUNh
bGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwogCi0gICAgSlNWYWx1ZSBjYWxsZWVBc1Zh
bHVlID0gZXhlY0NhbGxlZS0+Y2FsbGVlQXNWYWx1ZSgpOworICAgIEpTVmFsdWUgY2FsbGVlQXNW
YWx1ZSA9IGV4ZWNDYWxsZWUtPmd1YXJhbnRlZWRKU1ZhbHVlQ2FsbGVlKCk7CiAgICAgY2FsbGVl
QXNGdW5jdGlvbkNlbGwgPSBnZXRKU0Z1bmN0aW9uKGNhbGxlZUFzVmFsdWUpOwogICAgIGlmIChV
TkxJS0VMWSghY2FsbGVlQXNGdW5jdGlvbkNlbGwpKQogICAgICAgICByZXR1cm4gaGFuZGxlSG9z
dENhbGwoZXhlY0NhbGxlZSwgY2FsbGVlQXNWYWx1ZSwgY2FsbExpbmtJbmZvKTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgJKHJldmlzaW9uIDIxNDk2
MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDMzLDYgKzQzMywyNiBAQCBwdWJsaWM6CiAgICAgLy8gYWxpZ25tZW50IGZv
ciBhIEdDIGNlbGwsIGFuZCBpbiB0aGUgemVybyBwYWdlKS4KICAgICAjZGVmaW5lIFZhbHVlRW1w
dHkgICAweDBsbAogICAgICNkZWZpbmUgVmFsdWVEZWxldGVkIDB4NGxsCisKKyAgICAjZGVmaW5l
IFRhZ0JpdHNXYXNtIChUYWdCaXRUeXBlT3RoZXIgfCAweDEpCisgICAgI2RlZmluZSBUYWdXYXNt
IChUYWdUeXBlTnVtYmVyIHwgMHg3KQorICAgIC8vIFdlIHRhZyBXYXNtIG5vbi1KU0NlbGwgcG9p
bnRlcnMgd2l0aCBhIDMgYXQgdGhlIGJvdHRvbS4gV2UgY2FuIHRlc3QgaWYgYSA2NC1iaXQgSlNW
YWx1ZSBwYXR0ZXJuCisgICAgLy8gaXMgYSBXYXNtIGNhbGxlZSBieSBtYXNraW5nIHRoZSB1cHBl
ciAxNiBiaXRzIGFuZCB0aGUgbG93ZXIgMyBiaXRzLCBhbmQgc2VlaW5nIGlmCisgICAgLy8gdGhl
IHJlc3VsdGluZyB2YWx1ZSBpcyAzLiBUaGUgZnVsbCB0ZXN0IGlzOiB4ICYgVGFnV2FzbSA9PSBU
YWdCaXRzV2FzbQorICAgIC8vIFRoaXMgd29ya3MgYmVjYXVzZSB0aGUgbG93ZXIgMyBiaXRzIG9m
IHRoZSBub24tbnVtYmVyIGltbWVkaWF0ZSB2YWx1ZXMgYXJlIGFzIGZvbGxvd3M6CisgICAgLy8g
dW5kZWZpbmVkOiAwYjAxMAorICAgIC8vIG51bGw6ICAgICAgMGIwMTAKKyAgICAvLyB0cnVlOiAg
ICAgIDBiMTExCisgICAgLy8gZmFsc2U6ICAgICAwYjExMAorICAgIC8vIFRoZSB0ZXN0IHN1Y2Nl
ZWRzIGZvciBhbGwgb2YgdGhlc2UgYmVjYXVzZSBub24gaGF2ZSBqdXN0IHRoZSB2YWx1ZSAzIGlu
IHRoZWlyIGxvd2VyIDMgYml0cy4KKyAgICAvLyBUaGUgdGVzdCBhbHNvIHN1Y2NlZWRzIGZvciBu
dW1iZXJzLCBiZWNhdXNlIHRoZXkgaGF2ZSBub24temVybyB1cHBlciAxNiBiaXRzLgorICAgIC8v
IFRoZSB0ZXN0IGFsc28gc3VjY2VlZHMgZm9yIG5vcm1hbCBjZWxscyBiZWNhdXNlIHRoZXkgd29u
J3QgaGF2ZSB0aGUgbnVtYmVyIDMgYXMKKyAgICAvLyB0aGVpciBsb3dlciAzIGJpdHMuIE5vdGUs
IHRoaXMgYml0IHBhdHRlcm4gYWxzbyBhbGxvd3MgdGhlIG5vcm1hbCBKU1ZhbHVlIGlzQ2VsbCgp
LCBldGMsCisgICAgLy8gcHJlZGljYXRlcyB0byB3b3JrIG9uIGEgV2FzbTo6Q2FsbGVlIGJlY2F1
c2UgdGhlIHZhcmlvdXMgdGVzdHMgd2lsbCBmYWlsIGlmIHlvdQorICAgIC8vIGJpdCBjYXN0ZWQg
YSBib3hlZCBXYXNtOjpDYWxsZWUqIHRvIGEgSlNWYWx1ZS4gaXNDZWxsKCkgd291bGQgZmFpbCBz
aW5jZSBpdCBzZWVzCisgICAgLy8gVGFnQml0VHlwZU90aGVyLiBUaGUgb3RoZXIgdGVzdHMgYWxz
byB0cml2aWFsbHkgZmFpbCwgc2luY2UgaXQgd29uJ3QgYmUgYSBudW1iZXIsCisgICAgLy8gYW5k
IGl0IHdvbid0IGJlIGVxdWFsIHRvIG51bGwsIHVuZGVmaW5lZCwgdHJ1ZSwgb3IgZmFsc2UuIFRo
ZSBpc0Jvb2xlYW4oKSBwcmVkaWNhdGUKKyAgICAvLyB3aWxsIGZhaWwgYmVjYXVzZSB3ZSB3b24n
dCBoYXZlIFRhZ0JpdEJvb2wgc2V0LgogI2VuZGlmCiAKIHByaXZhdGU6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306309</attachid>
            <date>2017-04-05 13:49:04 -0700</date>
            <delta_ts>2017-04-05 14:04:22 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>8548</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjE0OTY1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBA
CisyMDE3LTA0LTA1ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFJFR1JFU1NJT04gZml4IGJhZCBpc1dhc20oKSB0ZXN0IGJ5IGVuc3VyaW5nIHByb3BlciBXYXNt
IGNhbGxlZSBiaXQgcGF0dGVybgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTcwNDk0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTQ0NjQ4NT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNo
IGZpeGVzIGhvdyB3ZSB0ZXN0IGEgNjQgYml0IEpTVmFsdWUgcGF0dGVybiB0byBzZWUgaWYgaXQn
cworICAgICAgICBhIFdhc20gY2FsbGVlLiBXZSBub3cgdGFnIFdhc206OkNhbGxlZSdzIHdpdGgg
MGIwMTEgaW4gdGhlaXIgbG93ZXIgMyBiaXRzLgorICAgICAgICBUaGUgbmV3IHRlc3QgaXMgZm9y
IGEgV2FzbSBDYWxsZWUgaXMgYXMgZm9sbG93czoKKyAgICAgICAgaXNXYXNtKHVpbnQ2NF90IHgp
CisgICAgICAgIHsKKyAgICAgICAgCXJldHVybiB4ICYgMHhmZmZmMDAwMDAwMDAwMDA3ID09IDMK
KyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgVGhpcyB0ZXN0IHdvcmtzIGJlY2F1c2UgdGhl
IGxvd2VyIDMgYml0cyBvZiB0aGUgbm9uLW51bWJlciBpbW1lZGlhdGUgdmFsdWVzIGFyZSBhcyBm
b2xsb3dzOgorICAgICAgICB1bmRlZmluZWQ6IDBiMDEwCisgICAgICAgIG51bGw6ICAgICAgMGIw
MTAKKyAgICAgICAgdHJ1ZTogICAgICAwYjExMQorICAgICAgICBmYWxzZTogICAgIDBiMTEwCisg
ICAgICAgIFRoZSB0ZXN0IHN1Y2NlZWRzIGZvciBhbGwgb2YgdGhlc2UgYmVjYXVzZSBub24gaGF2
ZSBqdXN0IHRoZSB2YWx1ZSAzIGluIHRoZWlyIGxvd2VyIDMgYml0cy4KKyAgICAgICAgVGhlIHRl
c3QgYWxzbyBzdWNjZWVkcyBmb3IgbnVtYmVycywgYmVjYXVzZSB0aGV5IGhhdmUgbm9uLXplcm8g
dXBwZXIgMTYgYml0cy4KKyAgICAgICAgVGhlIHRlc3QgYWxzbyBzdWNjZWVkcyBmb3Igbm9ybWFs
IGNlbGxzIGJlY2F1c2UgdGhleSB3b24ndCBoYXZlIHRoZSBudW1iZXIgMyBhcworICAgICAgICB0
aGVpciBsb3dlciAzIGJpdHMuIE5vdGUsIHRoaXMgYml0IHBhdHRlcm4gYWxzbyBhbGxvd3MgdGhl
IG5vcm1hbCBKU1ZhbHVlIGlzQ2VsbCgpLCBldGMsCisgICAgICAgIHByZWRpY2F0ZXMgdG8gd29y
ayBvbiBhIFdhc206OkNhbGxlZSBiZWNhdXNlIHRoZSB2YXJpb3VzIHRlc3RzIHdpbGwgZmFpbCBp
ZiB5b3UKKyAgICAgICAgYml0IGNhc3RlZCBhIGJveGVkIFdhc206OkNhbGxlZSogdG8gYSBKU1Zh
bHVlLiBpc0NlbGwoKSB3b3VsZCBmYWlsIHNpbmNlIGl0IHNlZXMKKyAgICAgICAgVGFnQml0VHlw
ZU90aGVyLiBUaGUgb3RoZXIgdGVzdHMgYWxzbyB0cml2aWFsbHkgZmFpbCwgc2luY2UgaXQgd29u
J3QgYmUgYSBudW1iZXIsCisgICAgICAgIGFuZCBpdCB3b24ndCBiZSBlcXVhbCB0byBudWxsLCB1
bmRlZmluZWQsIHRydWUsIG9yIGZhbHNlLiBUaGUgaXNCb29sZWFuKCkgcHJlZGljYXRlCisgICAg
ICAgIHdpbGwgZmFpbCBiZWNhdXNlIHdlIHdvbid0IGhhdmUgVGFnQml0Qm9vbCBzZXQuCisKKyAg
ICAgICAgKiBpbnRlcnByZXRlci9DYWxsRnJhbWUuaDoKKyAgICAgICAgKEpTQzo6RXhlY1N0YXRl
OjpndWFyYW50ZWVkSlNWYWx1ZUNhbGxlZSk6CisgICAgICAgIChKU0M6OkV4ZWNTdGF0ZTo6Y2Fs
bGVlQXNWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgICogaW50ZXJwcmV0ZXIvQ2FsbGVlQml0cy5o
OgorICAgICAgICAoSlNDOjpDYWxsZWVCaXRzOjpib3hXYXNtKToKKyAgICAgICAgKEpTQzo6Q2Fs
bGVlQml0czo6aXNXYXNtKToKKyAgICAgICAgKEpTQzo6Q2FsbGVlQml0czo6YXNXYXNtQ2FsbGVl
KToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogcnVudGltZS9K
U0NKU1ZhbHVlLmg6CisKIDIwMTctMDQtMDUgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViQXNzZW1ibHk6IFdlIHNob3VsZG4ndCBuZWVkIHRvIHBp
biBzaXplIHJlZ2lzdGVycyBpZiB3ZSBoYXZlIGEgZmFzdCBtZW1vcnkuCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCShyZXZpc2lvbiAyMTQ5
NjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgJKHdv
cmtpbmcgY29weSkKQEAgLTg3LDcgKzg3LDE0IEBAIG5hbWVzcGFjZSBKU0MgIHsKICAgICBwdWJs
aWM6CiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgaGVhZGVyU2l6ZUluUmVnaXN0ZXJzID0gQ2Fs
bEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudCArIDE7CiAKLSAgICAgICAgSlNWYWx1ZSBjYWxsZWVB
c1ZhbHVlKCkgY29uc3QKKyAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiBzaG91bGQgb25seSBiZSBj
YWxsZWQgaW4gdmVyeSBzcGVjaWZpYyBjaXJjdW1zdGFuY2VzCisgICAgICAgIC8vIHdoZW4geW91
J3ZlIGd1YXJhbnRlZWQgdGhlIGNhbGxlZSBjYW4ndCBiZSBhIFdhc20gY2FsbGVlLCBhbmQgY2Fu
CisgICAgICAgIC8vIGJlIGFuIGFyYml0cmFyeSBKU1ZhbHVlLiBUaGlzIGZ1bmN0aW9uIHNob3Vs
ZCBiYXNpY2FsbHkgbmV2ZXIgYmUgdXNlZC4KKyAgICAgICAgLy8gSXRzIG9ubHkgdXNlIHJpZ2h0
IG5vdyBpcyB3aGVuIHdlIGFyZSBtYWtpbmcgYSBjYWxsLCBhbmQgd2UncmUgbm90CisgICAgICAg
IC8vIHlldCBzdXJlIGlmIHRoZSBjYWxsZWUgaXMgYSBjZWxsLiBJbiBnZW5lcmFsLCBhIEpTIGNh
bGxlZSBpcyBndWFyYW50ZWVkCisgICAgICAgIC8vIHRvIGJlIGEgY2VsbCwgaG93ZXZlciwgdGhl
cmUgaXMgYSBicmllZiB3aW5kb3cgd2hlcmUgd2UgbmVlZCB0byBjaGVjaworICAgICAgICAvLyB0
byBzZWUgaWYgaXQncyBhIGNlbGwsIGFuZCBpZiBpdCdzIG5vdCwgd2UgdGhyb3cgYW4gZXhjZXB0
aW9uLgorICAgICAgICBKU1ZhbHVlIGd1YXJhbnRlZWRKU1ZhbHVlQ2FsbGVlKCkgY29uc3QKICAg
ICAgICAgewogICAgICAgICAgICAgQVNTRVJUKCFjYWxsZWUoKS5pc1dhc20oKSk7CiAgICAgICAg
ICAgICByZXR1cm4gdGhpc1tDYWxsRnJhbWVTbG90OjpjYWxsZWVdLmpzVmFsdWUoKTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsZWVCaXRzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxlZUJpdHMuaAkocmV2
aXNpb24gMjE0OTYyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxl
ZUJpdHMuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+
CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtMzYsNyArMzcsNiBAQCBjbGFzcyBDYWxsZWU7CiBjbGFz
cyBKU0NlbGw7CiAKIGNsYXNzIENhbGxlZUJpdHMgewotICAgIHN0YXRpYyBjb25zdGV4cHIgdWlu
dHB0cl90IHdhc21UYWcgPSAxOwogcHVibGljOgogICAgIENhbGxlZUJpdHMoKSA9IGRlZmF1bHQ7
CiAgICAgQ2FsbGVlQml0cyh2b2lkKiBwdHIpIDogbV9wdHIocHRyKSB7IH0gCkBAIC00OCwxMyAr
NDgsMjMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCisjaWYgRU5B
QkxFKFdFQkFTU0VNQkxZKQogICAgIHN0YXRpYyB2b2lkKiBib3hXYXNtKFdhc206OkNhbGxlZSog
Y2FsbGVlKQogICAgIHsKLSAgICAgICAgQVNTRVJUKCEoYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4o
Y2FsbGVlKSAmIHdhc21UYWcpKTsKLSAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDx2b2lkKj4o
Yml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oY2FsbGVlKSB8IHdhc21UYWcpOworICAgICAgICBDYWxs
ZWVCaXRzIHJlc3VsdChiaXR3aXNlX2Nhc3Q8dm9pZCo+KGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+
KGNhbGxlZSkgfCBUYWdCaXRzV2FzbSkpOworICAgICAgICBBU1NFUlQocmVzdWx0LmlzV2FzbSgp
KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC5yYXdQdHIoKTsKICAgICB9CisjZW5kaWYKIAotICAg
IGJvb2wgaXNXYXNtKCkgY29uc3QgeyByZXR1cm4gYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4obV9w
dHIpICYgd2FzbVRhZzsgfQorICAgIGJvb2wgaXNXYXNtKCkgY29uc3QKKyAgICB7CisjaWYgRU5B
QkxFKFdFQkFTU0VNQkxZKQorICAgICAgICByZXR1cm4gKGJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+
KG1fcHRyKSAmIFRhZ1dhc21NYXNrKSA9PSBUYWdCaXRzV2FzbTsKKyNlbHNlCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyNlbmRpZgorICAgIH0KICAgICBib29sIGlzQ2VsbCgpIGNvbnN0IHsgcmV0
dXJuICFpc1dhc20oKTsgfQogCiAgICAgSlNDZWxsKiBhc0NlbGwoKSBjb25zdApAQCAtNjMsMTEg
KzczLDEzIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTQ2VsbCo+KG1f
cHRyKTsKICAgICB9CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgV2FzbTo6Q2FsbGVl
KiBhc1dhc21DYWxsZWUoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKGlzV2FzbSgpKTsK
LSAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxXYXNtOjpDYWxsZWUqPihiaXR3aXNlX2Nhc3Q8
dWludHB0cl90PihtX3B0cikgJiB+d2FzbVRhZyk7CisgICAgICAgIHJldHVybiBiaXR3aXNlX2Nh
c3Q8V2FzbTo6Q2FsbGVlKj4oYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4obV9wdHIpICYgflRhZ0Jp
dHNXYXNtKTsKICAgICB9CisjZW5kaWYKIAogICAgIHZvaWQqIHJhd1B0cigpIGNvbnN0IHsgcmV0
dXJuIG1fcHRyOyB9CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDIxNDk2MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgzNCw3ICs4MzQsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhCiAKICAgICBleGVjQ2Fs
bGVlLT5zZXRDb2RlQmxvY2soMCk7CiAgICAgCi0gICAgaWYgKCFpc0hvc3RGdW5jdGlvbihleGVj
Q2FsbGVlLT5jYWxsZWVBc1ZhbHVlKCksIGdsb2JhbEZ1bmNFdmFsKSkKKyAgICBpZiAoIWlzSG9z
dEZ1bmN0aW9uKGV4ZWNDYWxsZWUtPmd1YXJhbnRlZWRKU1ZhbHVlQ2FsbGVlKCksIGdsb2JhbEZ1
bmNFdmFsKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwogCiAg
ICAgSlNWYWx1ZSByZXN1bHQgPSBldmFsKGV4ZWNDYWxsZWUpOwpAQCAtOTE3LDcgKzkxNyw3IEBA
IFNsb3dQYXRoUmV0dXJuVHlwZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGkKICAgICAKICAgICBSRUxF
QVNFX0FTU0VSVCghY2FsbExpbmtJbmZvLT5pc0RpcmVjdCgpKTsKICAgICAKLSAgICBKU1ZhbHVl
IGNhbGxlZUFzVmFsdWUgPSBleGVjQ2FsbGVlLT5jYWxsZWVBc1ZhbHVlKCk7CisgICAgSlNWYWx1
ZSBjYWxsZWVBc1ZhbHVlID0gZXhlY0NhbGxlZS0+Z3VhcmFudGVlZEpTVmFsdWVDYWxsZWUoKTsK
ICAgICBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxsID0gZ2V0SlNGdW5jdGlvbihjYWxsZWVB
c1ZhbHVlKTsKICAgICBpZiAoIWNhbGxlZUFzRnVuY3Rpb25DZWxsKSB7CiAgICAgICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQgY2FjaGUgdGhlc2Uga2luZHMgb2YgY2FsbHMuIFRoZXkgY2FuIGJlIGNv
bW1vbiBhbmQgY3VycmVudGx5IHRoZXkgYXJlCkBAIC0xMDM0LDcgKzEwMzQsNyBAQCBpbmxpbmUg
U2xvd1BhdGhSZXR1cm5UeXBlIHZpcnR1YWxGb3JXaXRoCiAgICAgQ29kZVNwZWNpYWxpemF0aW9u
S2luZCBraW5kID0gY2FsbExpbmtJbmZvLT5zcGVjaWFsaXphdGlvbktpbmQoKTsKICAgICBOYXRp
dmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKIAotICAgIEpTVmFsdWUgY2FsbGVl
QXNWYWx1ZSA9IGV4ZWNDYWxsZWUtPmNhbGxlZUFzVmFsdWUoKTsKKyAgICBKU1ZhbHVlIGNhbGxl
ZUFzVmFsdWUgPSBleGVjQ2FsbGVlLT5ndWFyYW50ZWVkSlNWYWx1ZUNhbGxlZSgpOwogICAgIGNh
bGxlZUFzRnVuY3Rpb25DZWxsID0gZ2V0SlNGdW5jdGlvbihjYWxsZWVBc1ZhbHVlKTsKICAgICBp
ZiAoVU5MSUtFTFkoIWNhbGxlZUFzRnVuY3Rpb25DZWxsKSkKICAgICAgICAgcmV0dXJuIGhhbmRs
ZUhvc3RDYWxsKGV4ZWNDYWxsZWUsIGNhbGxlZUFzVmFsdWUsIGNhbGxMaW5rSW5mbyk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCShyZXZpc2lvbiAy
MTQ5NjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQzMyw2ICs0MzMsMjYgQEAgcHVibGljOgogICAgIC8vIGFsaWdubWVu
dCBmb3IgYSBHQyBjZWxsLCBhbmQgaW4gdGhlIHplcm8gcGFnZSkuCiAgICAgI2RlZmluZSBWYWx1
ZUVtcHR5ICAgMHgwbGwKICAgICAjZGVmaW5lIFZhbHVlRGVsZXRlZCAweDRsbAorCisgICAgI2Rl
ZmluZSBUYWdCaXRzV2FzbSAoVGFnQml0VHlwZU90aGVyIHwgMHgxKQorICAgICNkZWZpbmUgVGFn
V2FzbU1hc2sgKFRhZ1R5cGVOdW1iZXIgfCAweDcpCisgICAgLy8gV2UgdGFnIFdhc20gbm9uLUpT
Q2VsbCBwb2ludGVycyB3aXRoIGEgMyBhdCB0aGUgYm90dG9tLiBXZSBjYW4gdGVzdCBpZiBhIDY0
LWJpdCBKU1ZhbHVlIHBhdHRlcm4KKyAgICAvLyBpcyBhIFdhc20gY2FsbGVlIGJ5IG1hc2tpbmcg
dGhlIHVwcGVyIDE2IGJpdHMgYW5kIHRoZSBsb3dlciAzIGJpdHMsIGFuZCBzZWVpbmcgaWYKKyAg
ICAvLyB0aGUgcmVzdWx0aW5nIHZhbHVlIGlzIDMuIFRoZSBmdWxsIHRlc3QgaXM6IHggJiBUYWdX
YXNtTWFzayA9PSBUYWdCaXRzV2FzbQorICAgIC8vIFRoaXMgd29ya3MgYmVjYXVzZSB0aGUgbG93
ZXIgMyBiaXRzIG9mIHRoZSBub24tbnVtYmVyIGltbWVkaWF0ZSB2YWx1ZXMgYXJlIGFzIGZvbGxv
d3M6CisgICAgLy8gdW5kZWZpbmVkOiAwYjAxMAorICAgIC8vIG51bGw6ICAgICAgMGIwMTAKKyAg
ICAvLyB0cnVlOiAgICAgIDBiMTExCisgICAgLy8gZmFsc2U6ICAgICAwYjExMAorICAgIC8vIFRo
ZSB0ZXN0IHN1Y2NlZWRzIGZvciBhbGwgb2YgdGhlc2UgYmVjYXVzZSBub24gaGF2ZSBqdXN0IHRo
ZSB2YWx1ZSAzIGluIHRoZWlyIGxvd2VyIDMgYml0cy4KKyAgICAvLyBUaGUgdGVzdCBhbHNvIHN1
Y2NlZWRzIGZvciBudW1iZXJzLCBiZWNhdXNlIHRoZXkgaGF2ZSBub24temVybyB1cHBlciAxNiBi
aXRzLgorICAgIC8vIFRoZSB0ZXN0IGFsc28gc3VjY2VlZHMgZm9yIG5vcm1hbCBjZWxscyBiZWNh
dXNlIHRoZXkgd29uJ3QgaGF2ZSB0aGUgbnVtYmVyIDMgYXMKKyAgICAvLyB0aGVpciBsb3dlciAz
IGJpdHMuIE5vdGUsIHRoaXMgYml0IHBhdHRlcm4gYWxzbyBhbGxvd3MgdGhlIG5vcm1hbCBKU1Zh
bHVlIGlzQ2VsbCgpLCBldGMsCisgICAgLy8gcHJlZGljYXRlcyB0byB3b3JrIG9uIGEgV2FzbTo6
Q2FsbGVlIGJlY2F1c2UgdGhlIHZhcmlvdXMgdGVzdHMgd2lsbCBmYWlsIGlmIHlvdQorICAgIC8v
IGJpdCBjYXN0ZWQgYSBib3hlZCBXYXNtOjpDYWxsZWUqIHRvIGEgSlNWYWx1ZS4gaXNDZWxsKCkg
d291bGQgZmFpbCBzaW5jZSBpdCBzZWVzCisgICAgLy8gVGFnQml0VHlwZU90aGVyLiBUaGUgb3Ro
ZXIgdGVzdHMgYWxzbyB0cml2aWFsbHkgZmFpbCwgc2luY2UgaXQgd29uJ3QgYmUgYSBudW1iZXIs
CisgICAgLy8gYW5kIGl0IHdvbid0IGJlIGVxdWFsIHRvIG51bGwsIHVuZGVmaW5lZCwgdHJ1ZSwg
b3IgZmFsc2UuIFRoZSBpc0Jvb2xlYW4oKSBwcmVkaWNhdGUKKyAgICAvLyB3aWxsIGZhaWwgYmVj
YXVzZSB3ZSB3b24ndCBoYXZlIFRhZ0JpdEJvb2wgc2V0LgogI2VuZGlmCiAKIHByaXZhdGU6Cg==
</data>
<flag name="review"
          id="327669"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306311</attachid>
            <date>2017-04-05 14:04:22 -0700</date>
            <delta_ts>2017-04-05 16:19:49 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>8534</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjE0OTY1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBA
CisyMDE3LTA0LTA1ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFJFR1JFU1NJT04gZml4IGJhZCBpc1dhc20oKSB0ZXN0IGJ5IGVuc3VyaW5nIHByb3BlciBXYXNt
IGNhbGxlZSBiaXQgcGF0dGVybgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTcwNDk0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTQ0NjQ4NT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBZdXN1a2UgU3V6dWtpIGFuZCBNYXJrIExhbS4KKworICAgICAg
ICBUaGlzIHBhdGNoIGZpeGVzIGhvdyB3ZSB0ZXN0IGEgNjQgYml0IEpTVmFsdWUgcGF0dGVybiB0
byBzZWUgaWYgaXQncworICAgICAgICBhIFdhc20gY2FsbGVlLiBXZSBub3cgdGFnIFdhc206OkNh
bGxlZSdzIHdpdGggMGIwMTEgaW4gdGhlaXIgbG93ZXIgMyBiaXRzLgorICAgICAgICBUaGUgbmV3
IHRlc3QgaXMgZm9yIGEgV2FzbSBDYWxsZWUgaXMgYXMgZm9sbG93czoKKyAgICAgICAgaXNXYXNt
KHVpbnQ2NF90IHgpCisgICAgICAgIHsKKyAgICAgICAgCXJldHVybiB4ICYgMHhmZmZmMDAwMDAw
MDAwMDA3ID09IDMKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgVGhpcyB0ZXN0IHdvcmtz
IGJlY2F1c2UgdGhlIGxvd2VyIDMgYml0cyBvZiB0aGUgbm9uLW51bWJlciBpbW1lZGlhdGUgdmFs
dWVzIGFyZSBhcyBmb2xsb3dzOgorICAgICAgICB1bmRlZmluZWQ6IDBiMDEwCisgICAgICAgIG51
bGw6ICAgICAgMGIwMTAKKyAgICAgICAgdHJ1ZTogICAgICAwYjExMQorICAgICAgICBmYWxzZTog
ICAgIDBiMTEwCisgICAgICAgIFRoZSB0ZXN0IHJlamVjdHMgYWxsIG9mIHRoZXNlIGJlY2F1c2Ug
bm9uZSBoYXZlIGp1c3QgdGhlIHZhbHVlIDMgaW4gdGhlaXIgbG93ZXIgMyBiaXRzLgorICAgICAg
ICBUaGUgdGVzdCBhbHNvIHJlamVjdHMgYWxsIG51bWJlcnMsIGJlY2F1c2UgdGhleSBoYXZlIG5v
bi16ZXJvIHVwcGVyIDE2IGJpdHMuCisgICAgICAgIFRoZSB0ZXN0IGFsc28gcmVqZWN0cyBub3Jt
YWwgY2VsbHMgYmVjYXVzZSB0aGV5IHdvbid0IGhhdmUgdGhlIG51bWJlciAzIGFzCisgICAgICAg
IHRoZWlyIGxvd2VyIDMgYml0cy4gTm90ZSwgdGhpcyBiaXQgcGF0dGVybiBhbHNvIGFsbG93cyB0
aGUgbm9ybWFsIEpTVmFsdWUgaXNDZWxsKCksIGV0YywKKyAgICAgICAgcHJlZGljYXRlcyB0byB3
b3JrIG9uIGEgV2FzbTo6Q2FsbGVlIGJlY2F1c2UgdGhlIHZhcmlvdXMgdGVzdHMgd2lsbCBmYWls
IGlmIHlvdQorICAgICAgICBiaXQgY2FzdGVkIGEgYm94ZWQgV2FzbTo6Q2FsbGVlKiB0byBhIEpT
VmFsdWUuIGlzQ2VsbCgpIHdvdWxkIGZhaWwgc2luY2UgaXQgc2VlcworICAgICAgICBUYWdCaXRU
eXBlT3RoZXIuIFRoZSBvdGhlciB0ZXN0cyBhbHNvIHRyaXZpYWxseSBmYWlsLCBzaW5jZSBpdCB3
b24ndCBiZSBhIG51bWJlciwKKyAgICAgICAgYW5kIGl0IHdvbid0IGJlIGVxdWFsIHRvIG51bGws
IHVuZGVmaW5lZCwgdHJ1ZSwgb3IgZmFsc2UuIFRoZSBpc0Jvb2xlYW4oKSBwcmVkaWNhdGUKKyAg
ICAgICAgd2lsbCBmYWlsIGJlY2F1c2Ugd2Ugd29uJ3QgaGF2ZSBUYWdCaXRCb29sIHNldC4KKwor
ICAgICAgICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5oOgorICAgICAgICAoSlNDOjpFeGVjU3Rh
dGU6Omd1YXJhbnRlZWRKU1ZhbHVlQ2FsbGVlKToKKyAgICAgICAgKEpTQzo6RXhlY1N0YXRlOjpj
YWxsZWVBc1ZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKiBpbnRlcnByZXRlci9DYWxsZWVCaXRz
Lmg6CisgICAgICAgIChKU0M6OkNhbGxlZUJpdHM6OmJveFdhc20pOgorICAgICAgICAoSlNDOjpD
YWxsZWVCaXRzOjppc1dhc20pOgorICAgICAgICAoSlNDOjpDYWxsZWVCaXRzOjphc1dhc21DYWxs
ZWUpOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L0pTQ0pTVmFsdWUuaDoKKwogMjAxNy0wNC0wNSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVy
QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJBc3NlbWJseTogV2Ugc2hvdWxkbid0IG5lZWQgdG8g
cGluIHNpemUgcmVnaXN0ZXJzIGlmIHdlIGhhdmUgYSBmYXN0IG1lbW9yeS4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgJKHJldmlzaW9uIDIx
NDk2MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAko
d29ya2luZyBjb3B5KQpAQCAtODcsNyArODcsMTQgQEAgbmFtZXNwYWNlIEpTQyAgewogICAgIHB1
YmxpYzoKICAgICAgICAgc3RhdGljIGNvbnN0IGludCBoZWFkZXJTaXplSW5SZWdpc3RlcnMgPSBD
YWxsRnJhbWVTbG90Ojphcmd1bWVudENvdW50ICsgMTsKIAotICAgICAgICBKU1ZhbHVlIGNhbGxl
ZUFzVmFsdWUoKSBjb25zdAorICAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNob3VsZCBvbmx5IGJl
IGNhbGxlZCBpbiB2ZXJ5IHNwZWNpZmljIGNpcmN1bXN0YW5jZXMKKyAgICAgICAgLy8gd2hlbiB5
b3UndmUgZ3VhcmFudGVlZCB0aGUgY2FsbGVlIGNhbid0IGJlIGEgV2FzbSBjYWxsZWUsIGFuZCBj
YW4KKyAgICAgICAgLy8gYmUgYW4gYXJiaXRyYXJ5IEpTVmFsdWUuIFRoaXMgZnVuY3Rpb24gc2hv
dWxkIGJhc2ljYWxseSBuZXZlciBiZSB1c2VkLgorICAgICAgICAvLyBJdHMgb25seSB1c2Ugcmln
aHQgbm93IGlzIHdoZW4gd2UgYXJlIG1ha2luZyBhIGNhbGwsIGFuZCB3ZSdyZSBub3QKKyAgICAg
ICAgLy8geWV0IHN1cmUgaWYgdGhlIGNhbGxlZSBpcyBhIGNlbGwuIEluIGdlbmVyYWwsIGEgSlMg
Y2FsbGVlIGlzIGd1YXJhbnRlZWQKKyAgICAgICAgLy8gdG8gYmUgYSBjZWxsLCBob3dldmVyLCB0
aGVyZSBpcyBhIGJyaWVmIHdpbmRvdyB3aGVyZSB3ZSBuZWVkIHRvIGNoZWNrCisgICAgICAgIC8v
IHRvIHNlZSBpZiBpdCdzIGEgY2VsbCwgYW5kIGlmIGl0J3Mgbm90LCB3ZSB0aHJvdyBhbiBleGNl
cHRpb24uCisgICAgICAgIEpTVmFsdWUgZ3VhcmFudGVlZEpTVmFsdWVDYWxsZWUoKSBjb25zdAog
ICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQoIWNhbGxlZSgpLmlzV2FzbSgpKTsKICAgICAg
ICAgICAgIHJldHVybiB0aGlzW0NhbGxGcmFtZVNsb3Q6OmNhbGxlZV0uanNWYWx1ZSgpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxlZUJpdHMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbGVlQml0cy5oCShy
ZXZpc2lvbiAyMTQ5NjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2Fs
bGVlQml0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25j
ZQogCisjaW5jbHVkZSAiSlNDSlNWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMu
aD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC0zNiw3ICszNyw2IEBAIGNsYXNzIENhbGxlZTsKIGNs
YXNzIEpTQ2VsbDsKIAogY2xhc3MgQ2FsbGVlQml0cyB7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1
aW50cHRyX3Qgd2FzbVRhZyA9IDE7CiBwdWJsaWM6CiAgICAgQ2FsbGVlQml0cygpID0gZGVmYXVs
dDsKICAgICBDYWxsZWVCaXRzKHZvaWQqIHB0cikgOiBtX3B0cihwdHIpIHsgfSAKQEAgLTQ4LDEz
ICs0OCwyMyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAKKyNpZiBF
TkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgc3RhdGljIHZvaWQqIGJveFdhc20oV2FzbTo6Q2FsbGVl
KiBjYWxsZWUpCiAgICAgewotICAgICAgICBBU1NFUlQoIShiaXR3aXNlX2Nhc3Q8dWludHB0cl90
PihjYWxsZWUpICYgd2FzbVRhZykpOwotICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PHZvaWQq
PihiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihjYWxsZWUpIHwgd2FzbVRhZyk7CisgICAgICAgIENh
bGxlZUJpdHMgcmVzdWx0KGJpdHdpc2VfY2FzdDx2b2lkKj4oYml0d2lzZV9jYXN0PHVpbnRwdHJf
dD4oY2FsbGVlKSB8IFRhZ0JpdHNXYXNtKSk7CisgICAgICAgIEFTU0VSVChyZXN1bHQuaXNXYXNt
KCkpOworICAgICAgICByZXR1cm4gcmVzdWx0LnJhd1B0cigpOwogICAgIH0KKyNlbmRpZgogCi0g
ICAgYm9vbCBpc1dhc20oKSBjb25zdCB7IHJldHVybiBiaXR3aXNlX2Nhc3Q8dWludHB0cl90Piht
X3B0cikgJiB3YXNtVGFnOyB9CisgICAgYm9vbCBpc1dhc20oKSBjb25zdAorICAgIHsKKyNpZiBF
TkFCTEUoV0VCQVNTRU1CTFkpCisgICAgICAgIHJldHVybiAoYml0d2lzZV9jYXN0PHVpbnRwdHJf
dD4obV9wdHIpICYgVGFnV2FzbU1hc2spID09IFRhZ0JpdHNXYXNtOworI2Vsc2UKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworI2VuZGlmCisgICAgfQogICAgIGJvb2wgaXNDZWxsKCkgY29uc3QgeyBy
ZXR1cm4gIWlzV2FzbSgpOyB9CiAKICAgICBKU0NlbGwqIGFzQ2VsbCgpIGNvbnN0CkBAIC02Mywx
MSArNzMsMTMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNDZWxsKj4o
bV9wdHIpOwogICAgIH0KIAorI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKICAgICBXYXNtOjpDYWxs
ZWUqIGFzV2FzbUNhbGxlZSgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQoaXNXYXNtKCkp
OwotICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PFdhc206OkNhbGxlZSo+KGJpdHdpc2VfY2Fz
dDx1aW50cHRyX3Q+KG1fcHRyKSAmIH53YXNtVGFnKTsKKyAgICAgICAgcmV0dXJuIGJpdHdpc2Vf
Y2FzdDxXYXNtOjpDYWxsZWUqPihiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihtX3B0cikgJiB+VGFn
Qml0c1dhc20pOwogICAgIH0KKyNlbmRpZgogCiAgICAgdm9pZCogcmF3UHRyKCkgY29uc3QgeyBy
ZXR1cm4gbV9wdHI7IH0KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmNwcAkocmV2aXNpb24gMjE0OTYyKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODM0LDcgKzgzNCw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2EKIAogICAgIGV4ZWND
YWxsZWUtPnNldENvZGVCbG9jaygwKTsKICAgICAKLSAgICBpZiAoIWlzSG9zdEZ1bmN0aW9uKGV4
ZWNDYWxsZWUtPmNhbGxlZUFzVmFsdWUoKSwgZ2xvYmFsRnVuY0V2YWwpKQorICAgIGlmICghaXNI
b3N0RnVuY3Rpb24oZXhlY0NhbGxlZS0+Z3VhcmFudGVlZEpTVmFsdWVDYWxsZWUoKSwgZ2xvYmFs
RnVuY0V2YWwpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CiAK
ICAgICBKU1ZhbHVlIHJlc3VsdCA9IGV2YWwoZXhlY0NhbGxlZSk7CkBAIC05MTcsNyArOTE3LDcg
QEAgU2xvd1BhdGhSZXR1cm5UeXBlIEpJVF9PUEVSQVRJT04gb3BlcmF0aQogICAgIAogICAgIFJF
TEVBU0VfQVNTRVJUKCFjYWxsTGlua0luZm8tPmlzRGlyZWN0KCkpOwogICAgIAotICAgIEpTVmFs
dWUgY2FsbGVlQXNWYWx1ZSA9IGV4ZWNDYWxsZWUtPmNhbGxlZUFzVmFsdWUoKTsKKyAgICBKU1Zh
bHVlIGNhbGxlZUFzVmFsdWUgPSBleGVjQ2FsbGVlLT5ndWFyYW50ZWVkSlNWYWx1ZUNhbGxlZSgp
OwogICAgIEpTQ2VsbCogY2FsbGVlQXNGdW5jdGlvbkNlbGwgPSBnZXRKU0Z1bmN0aW9uKGNhbGxl
ZUFzVmFsdWUpOwogICAgIGlmICghY2FsbGVlQXNGdW5jdGlvbkNlbGwpIHsKICAgICAgICAgLy8g
RklYTUU6IFdlIHNob3VsZCBjYWNoZSB0aGVzZSBraW5kcyBvZiBjYWxscy4gVGhleSBjYW4gYmUg
Y29tbW9uIGFuZCBjdXJyZW50bHkgdGhleSBhcmUKQEAgLTEwMzQsNyArMTAzNCw3IEBAIGlubGlu
ZSBTbG93UGF0aFJldHVyblR5cGUgdmlydHVhbEZvcldpdGgKICAgICBDb2RlU3BlY2lhbGl6YXRp
b25LaW5kIGtpbmQgPSBjYWxsTGlua0luZm8tPnNwZWNpYWxpemF0aW9uS2luZCgpOwogICAgIE5h
dGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwogCi0gICAgSlNWYWx1ZSBjYWxs
ZWVBc1ZhbHVlID0gZXhlY0NhbGxlZS0+Y2FsbGVlQXNWYWx1ZSgpOworICAgIEpTVmFsdWUgY2Fs
bGVlQXNWYWx1ZSA9IGV4ZWNDYWxsZWUtPmd1YXJhbnRlZWRKU1ZhbHVlQ2FsbGVlKCk7CiAgICAg
Y2FsbGVlQXNGdW5jdGlvbkNlbGwgPSBnZXRKU0Z1bmN0aW9uKGNhbGxlZUFzVmFsdWUpOwogICAg
IGlmIChVTkxJS0VMWSghY2FsbGVlQXNGdW5jdGlvbkNlbGwpKQogICAgICAgICByZXR1cm4gaGFu
ZGxlSG9zdENhbGwoZXhlY0NhbGxlZSwgY2FsbGVlQXNWYWx1ZSwgY2FsbExpbmtJbmZvKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgJKHJldmlzaW9u
IDIxNDk2MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAko
d29ya2luZyBjb3B5KQpAQCAtNDMzLDYgKzQzMywyNiBAQCBwdWJsaWM6CiAgICAgLy8gYWxpZ25t
ZW50IGZvciBhIEdDIGNlbGwsIGFuZCBpbiB0aGUgemVybyBwYWdlKS4KICAgICAjZGVmaW5lIFZh
bHVlRW1wdHkgICAweDBsbAogICAgICNkZWZpbmUgVmFsdWVEZWxldGVkIDB4NGxsCisKKyAgICAj
ZGVmaW5lIFRhZ0JpdHNXYXNtIChUYWdCaXRUeXBlT3RoZXIgfCAweDEpCisgICAgI2RlZmluZSBU
YWdXYXNtTWFzayAoVGFnVHlwZU51bWJlciB8IDB4NykKKyAgICAvLyBXZSB0YWcgV2FzbSBub24t
SlNDZWxsIHBvaW50ZXJzIHdpdGggYSAzIGF0IHRoZSBib3R0b20uIFdlIGNhbiB0ZXN0IGlmIGEg
NjQtYml0IEpTVmFsdWUgcGF0dGVybgorICAgIC8vIGlzIGEgV2FzbSBjYWxsZWUgYnkgbWFza2lu
ZyB0aGUgdXBwZXIgMTYgYml0cyBhbmQgdGhlIGxvd2VyIDMgYml0cywgYW5kIHNlZWluZyBpZgor
ICAgIC8vIHRoZSByZXN1bHRpbmcgdmFsdWUgaXMgMy4gVGhlIGZ1bGwgdGVzdCBpczogeCAmIFRh
Z1dhc21NYXNrID09IFRhZ0JpdHNXYXNtCisgICAgLy8gVGhpcyB3b3JrcyBiZWNhdXNlIHRoZSBs
b3dlciAzIGJpdHMgb2YgdGhlIG5vbi1udW1iZXIgaW1tZWRpYXRlIHZhbHVlcyBhcmUgYXMgZm9s
bG93czoKKyAgICAvLyB1bmRlZmluZWQ6IDBiMDEwCisgICAgLy8gbnVsbDogICAgICAwYjAxMAor
ICAgIC8vIHRydWU6ICAgICAgMGIxMTEKKyAgICAvLyBmYWxzZTogICAgIDBiMTEwCisgICAgLy8g
VGhlIHRlc3QgcmVqZWN0cyBhbGwgb2YgdGhlc2UgYmVjYXVzZSBub25lIGhhdmUganVzdCB0aGUg
dmFsdWUgMyBpbiB0aGVpciBsb3dlciAzIGJpdHMuCisgICAgLy8gVGhlIHRlc3QgcmVqZWN0cyBh
bGwgbnVtYmVycyBiZWNhdXNlIHRoZXkgaGF2ZSBub24temVybyB1cHBlciAxNiBiaXRzLgorICAg
IC8vIFRoZSB0ZXN0IGFsc28gcmVqZWN0cyBub3JtYWwgY2VsbHMgYmVjYXVzZSB0aGV5IHdvbid0
IGhhdmUgdGhlIG51bWJlciAzIGFzCisgICAgLy8gdGhlaXIgbG93ZXIgMyBiaXRzLiBOb3RlLCB0
aGlzIGJpdCBwYXR0ZXJuIGFsc28gYWxsb3dzIHRoZSBub3JtYWwgSlNWYWx1ZSBpc0NlbGwoKSwg
ZXRjLAorICAgIC8vIHByZWRpY2F0ZXMgdG8gd29yayBvbiBhIFdhc206OkNhbGxlZSBiZWNhdXNl
IHRoZSB2YXJpb3VzIHRlc3RzIHdpbGwgZmFpbCBpZiB5b3UKKyAgICAvLyBiaXQgY2FzdGVkIGEg
Ym94ZWQgV2FzbTo6Q2FsbGVlKiB0byBhIEpTVmFsdWUuIGlzQ2VsbCgpIHdvdWxkIGZhaWwgc2lu
Y2UgaXQgc2VlcworICAgIC8vIFRhZ0JpdFR5cGVPdGhlci4gVGhlIG90aGVyIHRlc3RzIGFsc28g
dHJpdmlhbGx5IGZhaWwsIHNpbmNlIGl0IHdvbid0IGJlIGEgbnVtYmVyLAorICAgIC8vIGFuZCBp
dCB3b24ndCBiZSBlcXVhbCB0byBudWxsLCB1bmRlZmluZWQsIHRydWUsIG9yIGZhbHNlLiBUaGUg
aXNCb29sZWFuKCkgcHJlZGljYXRlCisgICAgLy8gd2lsbCBmYWlsIGJlY2F1c2Ugd2Ugd29uJ3Qg
aGF2ZSBUYWdCaXRCb29sIHNldC4KICNlbmRpZgogCiBwcml2YXRlOgo=
</data>
<flag name="commit-queue"
          id="327678"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306332</attachid>
            <date>2017-04-05 16:19:49 -0700</date>
            <delta_ts>2017-04-05 16:59:14 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>8538</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjE0OTYyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBA
CisyMDE3LTA0LTA1ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFJFR1JFU1NJT04gZml4IGJhZCBpc1dhc20oKSB0ZXN0IGJ5IGVuc3VyaW5nIHByb3BlciBXYXNt
IGNhbGxlZSBiaXQgcGF0dGVybgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTcwNDk0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTQ0NjQ4NT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBZdXN1a2UgU3V6dWtpIGFuZCBNYXJrIExhbS4KKworICAgICAg
ICBUaGlzIHBhdGNoIGZpeGVzIGhvdyB3ZSB0ZXN0IGEgNjQgYml0IEpTVmFsdWUgcGF0dGVybiB0
byBzZWUgaWYgaXQncworICAgICAgICBhIFdhc20gY2FsbGVlLiBXZSBub3cgdGFnIFdhc206OkNh
bGxlZSdzIHdpdGggMGIwMTEgaW4gdGhlaXIgbG93ZXIgMyBiaXRzLgorICAgICAgICBUaGUgbmV3
IHRlc3QgaXMgZm9yIGEgV2FzbSBDYWxsZWUgaXMgYXMgZm9sbG93czoKKyAgICAgICAgaXNXYXNt
KHVpbnQ2NF90IHgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB4ICYgMHhmZmZmMDAw
MDAwMDAwMDA3ID09IDM7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFRoaXMgdGVzdCB3
b3JrcyBiZWNhdXNlIHRoZSBsb3dlciAzIGJpdHMgb2YgdGhlIG5vbi1udW1iZXIgaW1tZWRpYXRl
IHZhbHVlcyBhcmUgYXMgZm9sbG93czoKKyAgICAgICAgdW5kZWZpbmVkOiAwYjAxMAorICAgICAg
ICBudWxsOiAgICAgIDBiMDEwCisgICAgICAgIHRydWU6ICAgICAgMGIxMTEKKyAgICAgICAgZmFs
c2U6ICAgICAwYjExMAorICAgICAgICBUaGUgdGVzdCByZWplY3RzIGFsbCBvZiB0aGVzZSBiZWNh
dXNlIG5vbmUgaGF2ZSBqdXN0IHRoZSB2YWx1ZSAzIGluIHRoZWlyIGxvd2VyIDMgYml0cy4KKyAg
ICAgICAgVGhlIHRlc3QgYWxzbyByZWplY3RzIGFsbCBudW1iZXJzLCBiZWNhdXNlIHRoZXkgaGF2
ZSBub24temVybyB1cHBlciAxNiBiaXRzLgorICAgICAgICBUaGUgdGVzdCBhbHNvIHJlamVjdHMg
bm9ybWFsIGNlbGxzIGJlY2F1c2UgdGhleSB3b24ndCBoYXZlIHRoZSBudW1iZXIgMyBhcworICAg
ICAgICB0aGVpciBsb3dlciAzIGJpdHMuIE5vdGUsIHRoaXMgYml0IHBhdHRlcm4gYWxzbyBhbGxv
d3MgdGhlIG5vcm1hbCBKU1ZhbHVlIGlzQ2VsbCgpLCBldGMsCisgICAgICAgIHByZWRpY2F0ZXMg
dG8gd29yayBvbiBhIFdhc206OkNhbGxlZSBiZWNhdXNlIHRoZSB2YXJpb3VzIHRlc3RzIHdpbGwg
ZmFpbCBpZiB5b3UKKyAgICAgICAgYml0IGNhc3RlZCBhIGJveGVkIFdhc206OkNhbGxlZSogdG8g
YSBKU1ZhbHVlLiBpc0NlbGwoKSB3b3VsZCBmYWlsIHNpbmNlIGl0IHNlZXMKKyAgICAgICAgVGFn
Qml0VHlwZU90aGVyLiBUaGUgb3RoZXIgdGVzdHMgYWxzbyB0cml2aWFsbHkgZmFpbCwgc2luY2Ug
aXQgd29uJ3QgYmUgYSBudW1iZXIsCisgICAgICAgIGFuZCBpdCB3b24ndCBiZSBlcXVhbCB0byBu
dWxsLCB1bmRlZmluZWQsIHRydWUsIG9yIGZhbHNlLiBUaGUgaXNCb29sZWFuKCkgcHJlZGljYXRl
CisgICAgICAgIHdpbGwgZmFpbCBiZWNhdXNlIHdlIHdvbid0IGhhdmUgVGFnQml0Qm9vbCBzZXQu
CisKKyAgICAgICAgKiBpbnRlcnByZXRlci9DYWxsRnJhbWUuaDoKKyAgICAgICAgKEpTQzo6RXhl
Y1N0YXRlOjpndWFyYW50ZWVkSlNWYWx1ZUNhbGxlZSk6CisgICAgICAgIChKU0M6OkV4ZWNTdGF0
ZTo6Y2FsbGVlQXNWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgICogaW50ZXJwcmV0ZXIvQ2FsbGVl
Qml0cy5oOgorICAgICAgICAoSlNDOjpDYWxsZWVCaXRzOjpib3hXYXNtKToKKyAgICAgICAgKEpT
Qzo6Q2FsbGVlQml0czo6aXNXYXNtKToKKyAgICAgICAgKEpTQzo6Q2FsbGVlQml0czo6YXNXYXNt
Q2FsbGVlKToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogcnVu
dGltZS9KU0NKU1ZhbHVlLmg6CisKIDIwMTctMDQtMDUgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21p
bGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViQXNzZW1ibHk6IFdlIHNob3VsZG4ndCBuZWVk
IHRvIHBpbiBzaXplIHJlZ2lzdGVycyBpZiB3ZSBoYXZlIGEgZmFzdCBtZW1vcnkuCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCShyZXZpc2lv
biAyMTQ5NjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1l
LmgJKHdvcmtpbmcgY29weSkKQEAgLTg3LDcgKzg3LDE0IEBAIG5hbWVzcGFjZSBKU0MgIHsKICAg
ICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgaGVhZGVyU2l6ZUluUmVnaXN0ZXJz
ID0gQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudCArIDE7CiAKLSAgICAgICAgSlNWYWx1ZSBj
YWxsZWVBc1ZhbHVlKCkgY29uc3QKKyAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiBzaG91bGQgb25s
eSBiZSBjYWxsZWQgaW4gdmVyeSBzcGVjaWZpYyBjaXJjdW1zdGFuY2VzCisgICAgICAgIC8vIHdo
ZW4geW91J3ZlIGd1YXJhbnRlZWQgdGhlIGNhbGxlZSBjYW4ndCBiZSBhIFdhc20gY2FsbGVlLCBh
bmQgY2FuCisgICAgICAgIC8vIGJlIGFuIGFyYml0cmFyeSBKU1ZhbHVlLiBUaGlzIGZ1bmN0aW9u
IHNob3VsZCBiYXNpY2FsbHkgbmV2ZXIgYmUgdXNlZC4KKyAgICAgICAgLy8gSXRzIG9ubHkgdXNl
IHJpZ2h0IG5vdyBpcyB3aGVuIHdlIGFyZSBtYWtpbmcgYSBjYWxsLCBhbmQgd2UncmUgbm90Cisg
ICAgICAgIC8vIHlldCBzdXJlIGlmIHRoZSBjYWxsZWUgaXMgYSBjZWxsLiBJbiBnZW5lcmFsLCBh
IEpTIGNhbGxlZSBpcyBndWFyYW50ZWVkCisgICAgICAgIC8vIHRvIGJlIGEgY2VsbCwgaG93ZXZl
ciwgdGhlcmUgaXMgYSBicmllZiB3aW5kb3cgd2hlcmUgd2UgbmVlZCB0byBjaGVjaworICAgICAg
ICAvLyB0byBzZWUgaWYgaXQncyBhIGNlbGwsIGFuZCBpZiBpdCdzIG5vdCwgd2UgdGhyb3cgYW4g
ZXhjZXB0aW9uLgorICAgICAgICBKU1ZhbHVlIGd1YXJhbnRlZWRKU1ZhbHVlQ2FsbGVlKCkgY29u
c3QKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKCFjYWxsZWUoKS5pc1dhc20oKSk7CiAg
ICAgICAgICAgICByZXR1cm4gdGhpc1tDYWxsRnJhbWVTbG90OjpjYWxsZWVdLmpzVmFsdWUoKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsZWVCaXRzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxlZUJpdHMu
aAkocmV2aXNpb24gMjE0OTYyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0NhbGxlZUJpdHMuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21h
IG9uY2UKIAorI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0
cmFzLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtMzYsNyArMzcsNiBAQCBjbGFzcyBDYWxsZWU7
CiBjbGFzcyBKU0NlbGw7CiAKIGNsYXNzIENhbGxlZUJpdHMgewotICAgIHN0YXRpYyBjb25zdGV4
cHIgdWludHB0cl90IHdhc21UYWcgPSAxOwogcHVibGljOgogICAgIENhbGxlZUJpdHMoKSA9IGRl
ZmF1bHQ7CiAgICAgQ2FsbGVlQml0cyh2b2lkKiBwdHIpIDogbV9wdHIocHRyKSB7IH0gCkBAIC00
OCwxMyArNDgsMjMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCisj
aWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogICAgIHN0YXRpYyB2b2lkKiBib3hXYXNtKFdhc206OkNh
bGxlZSogY2FsbGVlKQogICAgIHsKLSAgICAgICAgQVNTRVJUKCEoYml0d2lzZV9jYXN0PHVpbnRw
dHJfdD4oY2FsbGVlKSAmIHdhc21UYWcpKTsKLSAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDx2
b2lkKj4oYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oY2FsbGVlKSB8IHdhc21UYWcpOworICAgICAg
ICBDYWxsZWVCaXRzIHJlc3VsdChiaXR3aXNlX2Nhc3Q8dm9pZCo+KGJpdHdpc2VfY2FzdDx1aW50
cHRyX3Q+KGNhbGxlZSkgfCBUYWdCaXRzV2FzbSkpOworICAgICAgICBBU1NFUlQocmVzdWx0Lmlz
V2FzbSgpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC5yYXdQdHIoKTsKICAgICB9CisjZW5kaWYK
IAotICAgIGJvb2wgaXNXYXNtKCkgY29uc3QgeyByZXR1cm4gYml0d2lzZV9jYXN0PHVpbnRwdHJf
dD4obV9wdHIpICYgd2FzbVRhZzsgfQorICAgIGJvb2wgaXNXYXNtKCkgY29uc3QKKyAgICB7Cisj
aWYgRU5BQkxFKFdFQkFTU0VNQkxZKQorICAgICAgICByZXR1cm4gKGJpdHdpc2VfY2FzdDx1aW50
cHRyX3Q+KG1fcHRyKSAmIFRhZ1dhc21NYXNrKSA9PSBUYWdCaXRzV2FzbTsKKyNlbHNlCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorICAgIH0KICAgICBib29sIGlzQ2VsbCgpIGNvbnN0
IHsgcmV0dXJuICFpc1dhc20oKTsgfQogCiAgICAgSlNDZWxsKiBhc0NlbGwoKSBjb25zdApAQCAt
NjMsMTEgKzczLDEzIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTQ2Vs
bCo+KG1fcHRyKTsKICAgICB9CiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAgICAgV2FzbTo6
Q2FsbGVlKiBhc1dhc21DYWxsZWUoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKGlzV2Fz
bSgpKTsKLSAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxXYXNtOjpDYWxsZWUqPihiaXR3aXNl
X2Nhc3Q8dWludHB0cl90PihtX3B0cikgJiB+d2FzbVRhZyk7CisgICAgICAgIHJldHVybiBiaXR3
aXNlX2Nhc3Q8V2FzbTo6Q2FsbGVlKj4oYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4obV9wdHIpICYg
flRhZ0JpdHNXYXNtKTsKICAgICB9CisjZW5kaWYKIAogICAgIHZvaWQqIHJhd1B0cigpIGNvbnN0
IHsgcmV0dXJuIG1fcHRyOyB9CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDIxNDk2MikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgzNCw3ICs4
MzQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhCiAKICAgICBl
eGVjQ2FsbGVlLT5zZXRDb2RlQmxvY2soMCk7CiAgICAgCi0gICAgaWYgKCFpc0hvc3RGdW5jdGlv
bihleGVjQ2FsbGVlLT5jYWxsZWVBc1ZhbHVlKCksIGdsb2JhbEZ1bmNFdmFsKSkKKyAgICBpZiAo
IWlzSG9zdEZ1bmN0aW9uKGV4ZWNDYWxsZWUtPmd1YXJhbnRlZWRKU1ZhbHVlQ2FsbGVlKCksIGds
b2JhbEZ1bmNFdmFsKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkp
OwogCiAgICAgSlNWYWx1ZSByZXN1bHQgPSBldmFsKGV4ZWNDYWxsZWUpOwpAQCAtOTE3LDcgKzkx
Nyw3IEBAIFNsb3dQYXRoUmV0dXJuVHlwZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGkKICAgICAKICAg
ICBSRUxFQVNFX0FTU0VSVCghY2FsbExpbmtJbmZvLT5pc0RpcmVjdCgpKTsKICAgICAKLSAgICBK
U1ZhbHVlIGNhbGxlZUFzVmFsdWUgPSBleGVjQ2FsbGVlLT5jYWxsZWVBc1ZhbHVlKCk7CisgICAg
SlNWYWx1ZSBjYWxsZWVBc1ZhbHVlID0gZXhlY0NhbGxlZS0+Z3VhcmFudGVlZEpTVmFsdWVDYWxs
ZWUoKTsKICAgICBKU0NlbGwqIGNhbGxlZUFzRnVuY3Rpb25DZWxsID0gZ2V0SlNGdW5jdGlvbihj
YWxsZWVBc1ZhbHVlKTsKICAgICBpZiAoIWNhbGxlZUFzRnVuY3Rpb25DZWxsKSB7CiAgICAgICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgY2FjaGUgdGhlc2Uga2luZHMgb2YgY2FsbHMuIFRoZXkgY2Fu
IGJlIGNvbW1vbiBhbmQgY3VycmVudGx5IHRoZXkgYXJlCkBAIC0xMDM0LDcgKzEwMzQsNyBAQCBp
bmxpbmUgU2xvd1BhdGhSZXR1cm5UeXBlIHZpcnR1YWxGb3JXaXRoCiAgICAgQ29kZVNwZWNpYWxp
emF0aW9uS2luZCBraW5kID0gY2FsbExpbmtJbmZvLT5zcGVjaWFsaXphdGlvbktpbmQoKTsKICAg
ICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKIAotICAgIEpTVmFsdWUg
Y2FsbGVlQXNWYWx1ZSA9IGV4ZWNDYWxsZWUtPmNhbGxlZUFzVmFsdWUoKTsKKyAgICBKU1ZhbHVl
IGNhbGxlZUFzVmFsdWUgPSBleGVjQ2FsbGVlLT5ndWFyYW50ZWVkSlNWYWx1ZUNhbGxlZSgpOwog
ICAgIGNhbGxlZUFzRnVuY3Rpb25DZWxsID0gZ2V0SlNGdW5jdGlvbihjYWxsZWVBc1ZhbHVlKTsK
ICAgICBpZiAoVU5MSUtFTFkoIWNhbGxlZUFzRnVuY3Rpb25DZWxsKSkKICAgICAgICAgcmV0dXJu
IGhhbmRsZUhvc3RDYWxsKGV4ZWNDYWxsZWUsIGNhbGxlZUFzVmFsdWUsIGNhbGxMaW5rSW5mbyk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCShyZXZp
c2lvbiAyMTQ5NjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQzMyw2ICs0MzMsMjYgQEAgcHVibGljOgogICAgIC8vIGFs
aWdubWVudCBmb3IgYSBHQyBjZWxsLCBhbmQgaW4gdGhlIHplcm8gcGFnZSkuCiAgICAgI2RlZmlu
ZSBWYWx1ZUVtcHR5ICAgMHgwbGwKICAgICAjZGVmaW5lIFZhbHVlRGVsZXRlZCAweDRsbAorCisg
ICAgI2RlZmluZSBUYWdCaXRzV2FzbSAoVGFnQml0VHlwZU90aGVyIHwgMHgxKQorICAgICNkZWZp
bmUgVGFnV2FzbU1hc2sgKFRhZ1R5cGVOdW1iZXIgfCAweDcpCisgICAgLy8gV2UgdGFnIFdhc20g
bm9uLUpTQ2VsbCBwb2ludGVycyB3aXRoIGEgMyBhdCB0aGUgYm90dG9tLiBXZSBjYW4gdGVzdCBp
ZiBhIDY0LWJpdCBKU1ZhbHVlIHBhdHRlcm4KKyAgICAvLyBpcyBhIFdhc20gY2FsbGVlIGJ5IG1h
c2tpbmcgdGhlIHVwcGVyIDE2IGJpdHMgYW5kIHRoZSBsb3dlciAzIGJpdHMsIGFuZCBzZWVpbmcg
aWYKKyAgICAvLyB0aGUgcmVzdWx0aW5nIHZhbHVlIGlzIDMuIFRoZSBmdWxsIHRlc3QgaXM6IHgg
JiBUYWdXYXNtTWFzayA9PSBUYWdCaXRzV2FzbQorICAgIC8vIFRoaXMgd29ya3MgYmVjYXVzZSB0
aGUgbG93ZXIgMyBiaXRzIG9mIHRoZSBub24tbnVtYmVyIGltbWVkaWF0ZSB2YWx1ZXMgYXJlIGFz
IGZvbGxvd3M6CisgICAgLy8gdW5kZWZpbmVkOiAwYjAxMAorICAgIC8vIG51bGw6ICAgICAgMGIw
MTAKKyAgICAvLyB0cnVlOiAgICAgIDBiMTExCisgICAgLy8gZmFsc2U6ICAgICAwYjExMAorICAg
IC8vIFRoZSB0ZXN0IHJlamVjdHMgYWxsIG9mIHRoZXNlIGJlY2F1c2Ugbm9uZSBoYXZlIGp1c3Qg
dGhlIHZhbHVlIDMgaW4gdGhlaXIgbG93ZXIgMyBiaXRzLgorICAgIC8vIFRoZSB0ZXN0IHJlamVj
dHMgYWxsIG51bWJlcnMgYmVjYXVzZSB0aGV5IGhhdmUgbm9uLXplcm8gdXBwZXIgMTYgYml0cy4K
KyAgICAvLyBUaGUgdGVzdCBhbHNvIHJlamVjdHMgbm9ybWFsIGNlbGxzIGJlY2F1c2UgdGhleSB3
b24ndCBoYXZlIHRoZSBudW1iZXIgMyBhcworICAgIC8vIHRoZWlyIGxvd2VyIDMgYml0cy4gTm90
ZSwgdGhpcyBiaXQgcGF0dGVybiBhbHNvIGFsbG93cyB0aGUgbm9ybWFsIEpTVmFsdWUgaXNDZWxs
KCksIGV0YywKKyAgICAvLyBwcmVkaWNhdGVzIHRvIHdvcmsgb24gYSBXYXNtOjpDYWxsZWUgYmVj
YXVzZSB0aGUgdmFyaW91cyB0ZXN0cyB3aWxsIGZhaWwgaWYgeW91CisgICAgLy8gYml0IGNhc3Rl
ZCBhIGJveGVkIFdhc206OkNhbGxlZSogdG8gYSBKU1ZhbHVlLiBpc0NlbGwoKSB3b3VsZCBmYWls
IHNpbmNlIGl0IHNlZXMKKyAgICAvLyBUYWdCaXRUeXBlT3RoZXIuIFRoZSBvdGhlciB0ZXN0cyBh
bHNvIHRyaXZpYWxseSBmYWlsLCBzaW5jZSBpdCB3b24ndCBiZSBhIG51bWJlciwKKyAgICAvLyBh
bmQgaXQgd29uJ3QgYmUgZXF1YWwgdG8gbnVsbCwgdW5kZWZpbmVkLCB0cnVlLCBvciBmYWxzZS4g
VGhlIGlzQm9vbGVhbigpIHByZWRpY2F0ZQorICAgIC8vIHdpbGwgZmFpbCBiZWNhdXNlIHdlIHdv
bid0IGhhdmUgVGFnQml0Qm9vbCBzZXQuCiAjZW5kaWYKIAogcHJpdmF0ZToK
</data>

          </attachment>
      

    </bug>

</bugzilla>