<?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>161878</bug_id>
          
          <creation_ts>2016-09-12 15:35:35 -0700</creation_ts>
          <short_desc>AX: Crash at WebCore::Range::compareBoundaryPoints(WebCore::Range::CompareHow, WebCore::Range const&amp;, int&amp;) const + 23</short_desc>
          <delta_ts>2016-09-12 18:00:38 -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>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nan Wang">n_wang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mario</cc>
    
    <cc>n_wang</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1228945</commentid>
    <comment_count>0</comment_count>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2016-09-12 15:35:35 -0700</bug_when>
    <thetext>0   com.apple.WebCore             	0x00007fffc9e29fe7 WebCore::Range::compareBoundaryPoints(WebCore::Range::CompareHow, WebCore::Range const&amp;, int&amp;) const + 23
1   com.apple.WebCore             	0x00007fffc9507830 WebCore::AXObjectCache::rangeForUnorderedCharacterOffsets(WebCore::CharacterOffset const&amp;, WebCore::CharacterOffset const&amp;) + 400
2   com.apple.WebCore             	0x00007fffca2002e0 -[WebAccessibilityObjectWrapper rangeForTextMarkerRange:] + 224
3   com.apple.WebCore             	0x00007fffca2129e8 -[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:] + 15464

&lt;rdar://problem/27821325&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228946</commentid>
    <comment_count>1</comment_count>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2016-09-12 15:37:03 -0700</bug_when>
    <thetext>In static bool characterOffsetsInOrder(const CharacterOffset&amp; characterOffset1, const CharacterOffset&amp; characterOffset2)

We are getting an NULL range because characterOffset1 is associated with a doctype node.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228954</commentid>
    <comment_count>2</comment_count>
      <attachid>288625</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2016-09-12 15:44:24 -0700</bug_when>
    <thetext>Created attachment 288625
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228962</commentid>
    <comment_count>3</comment_count>
      <attachid>288629</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2016-09-12 15:59:18 -0700</bug_when>
    <thetext>Created attachment 288629
patch

Fixed the build failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228969</commentid>
    <comment_count>4</comment_count>
      <attachid>288629</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2016-09-12 16:10:10 -0700</bug_when>
    <thetext>Comment on attachment 288629
patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        ranges based on the nodes that associated to the passed in CharacterOffsets. When the first node is a doctype

that are associated

&gt; Source/WebCore/ChangeLog:10
&gt; +        node, the first range will be a nullptr.  And dereferencing it leads to a crash. Fixed this by adding a 

one sentence

e a nullptr, and der</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228974</commentid>
    <comment_count>5</comment_count>
      <attachid>288632</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2016-09-12 16:14:42 -0700</bug_when>
    <thetext>Created attachment 288632
patch

updated from review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229026</commentid>
    <comment_count>6</comment_count>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2016-09-12 18:00:26 -0700</bug_when>
    <thetext>Committed r205845: &lt;http://trac.webkit.org/changeset/205845&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288625</attachid>
            <date>2016-09-12 15:44:24 -0700</date>
            <delta_ts>2016-09-12 15:54:02 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>6578</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNTgzMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE2LTA5LTEyICBOYW4gV2Fu
ZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IENyYXNoIGF0IFdlYkNvcmU6OlJh
bmdlOjpjb21wYXJlQm91bmRhcnlQb2ludHMoV2ViQ29yZTo6UmFuZ2U6OkNvbXBhcmVIb3csIFdl
YkNvcmU6OlJhbmdlIGNvbnN0JiwgaW50JikgY29uc3QgKyAyMworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxODc4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gZnVuY3Rpb24gY2hhcmFjdGVyT2Zmc2V0
c0luT3JkZXIoY29uc3QgQ2hhcmFjdGVyT2Zmc2V0JiwgY29uc3QgQ2hhcmFjdGVyT2Zmc2V0Jiks
IHdlIGFyZSBjcmVhdGluZyB0d28KKyAgICAgICAgcmFuZ2VzIGJhc2VkIG9uIHRoZSBub2RlcyB0
aGF0IGFzc29jaWF0ZWQgdG8gdGhlIHBhc3NlZCBpbiBDaGFyYWN0ZXJPZmZzZXRzLiBXaGVuIHRo
ZSBmaXJzdCBub2RlIGlzIGEgZG9jdHlwZQorICAgICAgICBub2RlLCB0aGUgZmlyc3QgcmFuZ2Ug
d2lsbCBiZSBhIG51bGxwdHIuICBBbmQgZGVyZWZlcmVuY2luZyBpdCBsZWFkcyB0byBhIGNyYXNo
LiBGaXhlZCB0aGlzIGJ5IGFkZGluZyBhIAorICAgICAgICBOVUxMIGNoZWNrLgorCisgICAgICAg
IFRlc3Q6IGFjY2Vzc2liaWxpdHkvbWFjL2RvY3R5cGUtbm9kZS1pbi10ZXh0LW1hcmtlci1jcmFz
aC5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y2hhcmFjdGVyT2Zmc2V0c0luT3JkZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6cmVzZXROb2RlQW5kT2Zmc2V0Rm9yUmVwbGFjZWROb2RlKToKKwogMjAxNi0wOS0xMiAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVSTFBh
cnNlcjogQ29ycmVjdGx5IGhhbmRsZSByZWxhdGl2ZSBVUkxzIHRoYXQgYXJlIGp1c3QgYSBzY2hl
bWUgYW5kIGEgY29sb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcAkocmV2aXNpb24gMjA0MDk3KQorKysgU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY1NSw3ICsx
NjU1LDcgQEAgc3RhdGljIGJvb2wgaXNSZXBsYWNlZE5vZGVPckJSKE5vZGUqIG5vZAogICAgIHJl
dHVybiBub2RlICYmIChBY2Nlc3NpYmlsaXR5T2JqZWN0OjpyZXBsYWNlZE5vZGVOZWVkc0NoYXJh
Y3Rlcihub2RlKSB8fCBub2RlLT5oYXNUYWdOYW1lKGJyVGFnKSk7CiB9CiAKLXN0YXRpYyBib29s
IGNoYXJhY3Rlck9mZnNldHNJbk9yZGVyKGNvbnN0IENoYXJhY3Rlck9mZnNldCYgY2hhcmFjdGVy
T2Zmc2V0MSwgY29uc3QgQ2hhcmFjdGVyT2Zmc2V0JiBjaGFyYWN0ZXJPZmZzZXQyKQorc3RhdGlj
IGJvb2wgY2hhcmFjdGVyT2Zmc2V0c0luT3JkZXIoY29uc3QgQ2hhcmFjdGVyT2Zmc2V0JiwgY29u
c3QgQ2hhcmFjdGVyT2Zmc2V0JikKIHsKICAgICBpZiAoY2hhcmFjdGVyT2Zmc2V0MS5pc051bGwo
KSB8fCBjaGFyYWN0ZXJPZmZzZXQyLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBA
IC0xNjc2LDcgKzE2NzYsNyBAQCBzdGF0aWMgYm9vbCBjaGFyYWN0ZXJPZmZzZXRzSW5PcmRlcihj
b25zCiAgICAgUmVmUHRyPFJhbmdlPiByYW5nZTEgPSBBWE9iamVjdENhY2hlOjpyYW5nZUZvck5v
ZGVDb250ZW50cyhub2RlMSk7CiAgICAgUmVmUHRyPFJhbmdlPiByYW5nZTIgPSBBWE9iamVjdENh
Y2hlOjpyYW5nZUZvck5vZGVDb250ZW50cyhub2RlMik7CiAKLSAgICByZXR1cm4gIXJhbmdlMiB8
fCByYW5nZTEtPmNvbXBhcmVCb3VuZGFyeVBvaW50cyhSYW5nZTo6U1RBUlRfVE9fU1RBUlQsICpy
YW5nZTIsIElHTk9SRV9FWENFUFRJT04pIDw9IDA7CisgICAgcmV0dXJuICFyYW5nZTIgfHwgKHJh
bmdlMSAmJiByYW5nZTEtPmNvbXBhcmVCb3VuZGFyeVBvaW50cyhSYW5nZTo6U1RBUlRfVE9fU1RB
UlQsICpyYW5nZTIsIElHTk9SRV9FWENFUFRJT04pIDw9IDApOwogfQogCiBzdGF0aWMgTm9kZSog
cmVzZXROb2RlQW5kT2Zmc2V0Rm9yUmVwbGFjZWROb2RlKE5vZGUqIHJlcGxhY2VkTm9kZSwgaW50
JiBvZmZzZXQsIGludCBjaGFyYWN0ZXJDb3VudCkKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDA5NykK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDE2LTA5LTEyICBOYW4gV2FuZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6
IENyYXNoIGF0IFdlYkNvcmU6OlJhbmdlOjpjb21wYXJlQm91bmRhcnlQb2ludHMoV2ViQ29yZTo6
UmFuZ2U6OkNvbXBhcmVIb3csIFdlYkNvcmU6OlJhbmdlIGNvbnN0JiwgaW50JikgY29uc3QgKyAy
MworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxODc4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L21hYy9kb2N0eXBlLW5vZGUtaW4tdGV4dC1tYXJrZXItY3Jhc2gtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9kb2N0eXBlLW5vZGUtaW4t
dGV4dC1tYXJrZXItY3Jhc2guaHRtbDogQWRkZWQuCisKIDIwMTYtMDgtMDMgIFJ5YW4gSGFkZGFk
ICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgUmViYXNlbGluZSB0ZXN0cyBmb3Ig
aW9zLXNpbXVsYXRvciBhZnRlciByMjA0MDkwLgpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9tYWMvZG9jdHlwZS1ub2RlLWluLXRleHQtbWFya2VyLWNyYXNoLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9kb2N0eXBlLW5vZGUt
aW4tdGV4dC1tYXJrZXItY3Jhc2gtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2RvY3R5cGUtbm9kZS1pbi10ZXh0LW1hcmtlci1jcmFz
aC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAordGV4dAorVGhp
cyB0ZXN0cyB0aGF0IGNyZWF0aW5nIGEgdGV4dCBtYXJrZXIgcmFuZ2Ugd2l0aCBhIHRleHQgbWFy
a2VyIHRoYXQgYXNzb2NpYXRlZCB0byBhIGRvY3R5cGUgbm9kZSB3b24ndCBsZWFkIHRvIGNyYXNo
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvbWFjL2RvY3R5cGUtbm9kZS1pbi10ZXh0LW1hcmtlci1jcmFzaC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2RvY3R5cGUtbm9kZS1pbi10ZXh0
LW1hcmtlci1jcmFzaC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvbWFjL2RvY3R5cGUtbm9kZS1pbi10ZXh0LW1hcmtlci1jcmFzaC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4K
KworPGRpdiBpZD0iY29udGFpbmVyIiByb2xlPSJncm91cCIgY29udGVudGVkaXRhYmx0PSJ0cnVl
Ij50ZXh0PGlmcmFtZSBpZD0iZnJhbWUiIG1hcmdpbndpZHRoPSIwIiBtYXJnaW5oZWlnaHQ9IjAi
IGZyYW1lYm9yZGVyPSIwIiBzY3JvbGxpbmc9Im5vIiBoZWlnaHQ9IjEwMCUiIHdpZHRoPSIxMDAl
IiBzdHlsZT0icGFkZGluZzogMHB4OyBtYXJnaW46IDBweDsgYm9yZGVyOiAwcHg7IGhlaWdodDog
MTAwJTsgd2lkdGg6IDEwMCU7Ij48L2lmcmFtZT48L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKworICAgIGRlc2Ny
aXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgY3JlYXRpbmcgYSB0ZXh0IG1hcmtlciByYW5nZSB3aXRo
IGEgdGV4dCBtYXJrZXIgdGhhdCBhc3NvY2lhdGVkIHRvIGEgZG9jdHlwZSBub2RlIHdvbid0IGxl
YWQgdG8gY3Jhc2guIik7CisgICAgCisgICAgZnVuY3Rpb24gc2VsZWN0RWxlbWVudENvbnRlbnRz
KGVsKSB7CisgICAgICAgIHZhciByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CisgICAg
ICAgIHJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhlbCk7CisgICAgICAgIHZhciBzZWwgPSB3aW5k
b3cuZ2V0U2VsZWN0aW9uKCk7CisgICAgICAgIHNlbC5yZW1vdmVBbGxSYW5nZXMoKTsKKyAgICAg
ICAgc2VsLmFkZFJhbmdlKHJhbmdlKTsKKyAgICB9CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2li
aWxpdHlDb250cm9sbGVyKSB7CisKKyAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5lbmFi
bGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkodHJ1ZSk7CisgICAgICAgdmFyIHdlYkFyZWEgPSBhY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5yb290RWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7CisgICAgICAg
d2ViQXJlYS5zZXRCb29sQXR0cmlidXRlVmFsdWUoIkFYQ2FyZXRCcm93c2luZ0VuYWJsZWQiLCB0
cnVlKTsKKyAgICAgICAKKyAgICAgICAvLyBNYWtlIHN1cmUgdGhlIGlmcmFtZSBoYXMgYSBkb2N0
eXBlIG5vZGUKKyAgICAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZy
YW1lIik7CisgICAgICAgdmFyIGlkb2N1bWVudCA9IGlmcmFtZS5jb250ZW50RG9jdW1lbnQ7Cisg
ICAgICAgaWRvY3VtZW50Lm9wZW4oKTsKKyAgICAgICBpZG9jdW1lbnQud3JpdGUoIjwhRE9DVFlQ
RSBodG1sPiIpOworICAgICAgIGlkb2N1bWVudC53cml0ZSgiPGh0bWw+Iik7CisgICAgICAgaWRv
Y3VtZW50LndyaXRlKCI8aGVhZD48L2hlYWQ+Iik7CisgICAgICAgaWRvY3VtZW50LndyaXRlKCI8
Ym9keT48L2JvZHk+Iik7CisgICAgICAgaWRvY3VtZW50LndyaXRlKCI8L2h0bWw+Iik7CisgICAg
ICAgaWRvY3VtZW50LmNsb3NlKCk7CisgICAgICAgCisgICAgICAgLy8gU2VsZWN0IGFsbCB0aGUg
Y29udGVudHMgaW4gdGhlIGNvbnRhaW5lciwgYW5kIGdldCB0aGUgc2VsZWN0aW9uIHJhbmdlLgor
ICAgICAgIHZhciBjb250YWluZXIgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxl
RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpOworICAgICAgIHZhciBjb250YWluZXJFbGVtZW50ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpOworICAgICAgIHNlbGVjdEVsZW1l
bnRDb250ZW50cyhjb250YWluZXJFbGVtZW50KTsgCisgICAgICAgdmFyIHNlbGVjdGlvblJhbmdl
ID0gY29udGFpbmVyLnNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKCk7CisgICAgICAgCisgICAgICAg
dmFyIHN0YXJ0TWFya2VyID0gY29udGFpbmVyLnN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXJS
YW5nZShzZWxlY3Rpb25SYW5nZSk7CisgICAgICAgdmFyIGVuZE1hcmtlciA9IGNvbnRhaW5lci5l
bmRUZXh0TWFya2VyRm9yVGV4dE1hcmtlclJhbmdlKHNlbGVjdGlvblJhbmdlKTsKKyAgICAgICAK
KyAgICAgICAvLyBlbmRNYXJrZXIgaXMgbm93IGFzc29jaWF0ZWQgd2l0aCBhIGRvY3R5cGUgbm9k
ZSwgbWFrZSBzdXJlIGl0IHdvbid0IGxlYWQgdG8gYSBjcmFzaC4KKyAgICAgICB2YXIgbWFya2Vy
UmFuZ2UgPSBjb250YWluZXIudGV4dE1hcmtlclJhbmdlRm9yTWFya2VycyhlbmRNYXJrZXIsIHN0
YXJ0TWFya2VyKTsKKyAgICB9CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288629</attachid>
            <date>2016-09-12 15:59:18 -0700</date>
            <delta_ts>2016-09-12 16:14:42 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>6164</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNTgzNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE2LTA5LTEyICBOYW4gV2Fu
ZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IENyYXNoIGF0IFdlYkNvcmU6OlJh
bmdlOjpjb21wYXJlQm91bmRhcnlQb2ludHMoV2ViQ29yZTo6UmFuZ2U6OkNvbXBhcmVIb3csIFdl
YkNvcmU6OlJhbmdlIGNvbnN0JiwgaW50JikgY29uc3QgKyAyMworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxODc4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gZnVuY3Rpb24gY2hhcmFjdGVyT2Zmc2V0
c0luT3JkZXIoY29uc3QgQ2hhcmFjdGVyT2Zmc2V0JiwgY29uc3QgQ2hhcmFjdGVyT2Zmc2V0Jiks
IHdlIGFyZSBjcmVhdGluZyB0d28KKyAgICAgICAgcmFuZ2VzIGJhc2VkIG9uIHRoZSBub2RlcyB0
aGF0IGFzc29jaWF0ZWQgdG8gdGhlIHBhc3NlZCBpbiBDaGFyYWN0ZXJPZmZzZXRzLiBXaGVuIHRo
ZSBmaXJzdCBub2RlIGlzIGEgZG9jdHlwZQorICAgICAgICBub2RlLCB0aGUgZmlyc3QgcmFuZ2Ug
d2lsbCBiZSBhIG51bGxwdHIuICBBbmQgZGVyZWZlcmVuY2luZyBpdCBsZWFkcyB0byBhIGNyYXNo
LiBGaXhlZCB0aGlzIGJ5IGFkZGluZyBhIAorICAgICAgICBOVUxMIGNoZWNrLgorCisgICAgICAg
IFRlc3Q6IGFjY2Vzc2liaWxpdHkvbWFjL2RvY3R5cGUtbm9kZS1pbi10ZXh0LW1hcmtlci1jcmFz
aC5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y2hhcmFjdGVyT2Zmc2V0c0luT3JkZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6cmVzZXROb2RlQW5kT2Zmc2V0Rm9yUmVwbGFjZWROb2RlKToKKwogMjAxNi0wOS0xMiAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVSTFBh
cnNlcjogQ29ycmVjdGx5IGhhbmRsZSByZWxhdGl2ZSBVUkxzIHRoYXQgYXJlIGp1c3QgYSBzY2hl
bWUgYW5kIGEgY29sb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcAkocmV2aXNpb24gMjA1ODM0KQorKysgU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY4MSw3ICsx
NjgxLDcgQEAgc3RhdGljIGJvb2wgY2hhcmFjdGVyT2Zmc2V0c0luT3JkZXIoY29ucwogICAgIFJl
ZlB0cjxSYW5nZT4gcmFuZ2UxID0gQVhPYmplY3RDYWNoZTo6cmFuZ2VGb3JOb2RlQ29udGVudHMo
bm9kZTEpOwogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UyID0gQVhPYmplY3RDYWNoZTo6cmFuZ2VG
b3JOb2RlQ29udGVudHMobm9kZTIpOwogCi0gICAgcmV0dXJuICFyYW5nZTIgfHwgcmFuZ2UxLT5j
b21wYXJlQm91bmRhcnlQb2ludHMoUmFuZ2U6OlNUQVJUX1RPX1NUQVJULCAqcmFuZ2UyLCBJR05P
UkVfRVhDRVBUSU9OKSA8PSAwOworICAgIHJldHVybiAhcmFuZ2UyIHx8IChyYW5nZTEgJiYgcmFu
Z2UxLT5jb21wYXJlQm91bmRhcnlQb2ludHMoUmFuZ2U6OlNUQVJUX1RPX1NUQVJULCAqcmFuZ2Uy
LCBJR05PUkVfRVhDRVBUSU9OKSA8PSAwKTsKIH0KIAogc3RhdGljIE5vZGUqIHJlc2V0Tm9kZUFu
ZE9mZnNldEZvclJlcGxhY2VkTm9kZShOb2RlKiByZXBsYWNlZE5vZGUsIGludCYgb2Zmc2V0LCBp
bnQgY2hhcmFjdGVyQ291bnQpCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDU4MzQpCisrKyBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxNi0wOS0x
MiAgTmFuIFdhbmcgIDxuX3dhbmdAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBDcmFzaCBhdCBX
ZWJDb3JlOjpSYW5nZTo6Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKFdlYkNvcmU6OlJhbmdlOjpDb21w
YXJlSG93LCBXZWJDb3JlOjpSYW5nZSBjb25zdCYsIGludCYpIGNvbnN0ICsgMjMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTg3OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9t
YWMvZG9jdHlwZS1ub2RlLWluLXRleHQtbWFya2VyLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvZG9jdHlwZS1ub2RlLWluLXRleHQtbWFya2Vy
LWNyYXNoLmh0bWw6IEFkZGVkLgorCiAyMDE2LTA5LTEyICBNYXR0IEJha2VyICA8bWF0dGJha2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgVGVzdEhhcm5lc3MgYXNz
ZXJ0aW9ucy9leHBlY3RhdGlvbnMgdG8gcHJvdmlkZSBhZGRpdGlvbmFsIHNlbWFudGljcyBzaW1p
bGFyIHRvIFhDVGVzdApJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZG9jdHlw
ZS1ub2RlLWluLXRleHQtbWFya2VyLWNyYXNoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9kb2N0eXBlLW5vZGUtaW4tdGV4dC1tYXJrZXIt
Y3Jhc2gtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvbWFjL2RvY3R5cGUtbm9kZS1pbi10ZXh0LW1hcmtlci1jcmFzaC1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAordGV4dAorVGhpcyB0ZXN0cyB0aGF0IGNy
ZWF0aW5nIGEgdGV4dCBtYXJrZXIgcmFuZ2Ugd2l0aCBhIHRleHQgbWFya2VyIHRoYXQgYXNzb2Np
YXRlZCB0byBhIGRvY3R5cGUgbm9kZSB3b24ndCBsZWFkIHRvIGNyYXNoLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2RvY3R5
cGUtbm9kZS1pbi10ZXh0LW1hcmtlci1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvbWFjL2RvY3R5cGUtbm9kZS1pbi10ZXh0LW1hcmtlci1jcmFzaC5o
dG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2RvY3R5
cGUtbm9kZS1pbi10ZXh0LW1hcmtlci1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNTkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPGRpdiBpZD0iY29u
dGFpbmVyIiByb2xlPSJncm91cCIgY29udGVudGVkaXRhYmx0PSJ0cnVlIj50ZXh0PGlmcmFtZSBp
ZD0iZnJhbWUiIG1hcmdpbndpZHRoPSIwIiBtYXJnaW5oZWlnaHQ9IjAiIGZyYW1lYm9yZGVyPSIw
IiBzY3JvbGxpbmc9Im5vIiBoZWlnaHQ9IjEwMCUiIHdpZHRoPSIxMDAlIiBzdHlsZT0icGFkZGlu
ZzogMHB4OyBtYXJnaW46IDBweDsgYm9yZGVyOiAwcHg7IGhlaWdodDogMTAwJTsgd2lkdGg6IDEw
MCU7Ij48L2lmcmFtZT48L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRl
c3RzIHRoYXQgY3JlYXRpbmcgYSB0ZXh0IG1hcmtlciByYW5nZSB3aXRoIGEgdGV4dCBtYXJrZXIg
dGhhdCBhc3NvY2lhdGVkIHRvIGEgZG9jdHlwZSBub2RlIHdvbid0IGxlYWQgdG8gY3Jhc2guIik7
CisgICAgCisgICAgZnVuY3Rpb24gc2VsZWN0RWxlbWVudENvbnRlbnRzKGVsKSB7CisgICAgICAg
IHZhciByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CisgICAgICAgIHJhbmdlLnNlbGVj
dE5vZGVDb250ZW50cyhlbCk7CisgICAgICAgIHZhciBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9u
KCk7CisgICAgICAgIHNlbC5yZW1vdmVBbGxSYW5nZXMoKTsKKyAgICAgICAgc2VsLmFkZFJhbmdl
KHJhbmdlKTsKKyAgICB9CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVy
KSB7CisKKyAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5lbmFibGVFbmhhbmNlZEFjY2Vz
c2liaWxpdHkodHJ1ZSk7CisgICAgICAgdmFyIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5yb290RWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7CisgICAgICAgd2ViQXJlYS5zZXRCb29s
QXR0cmlidXRlVmFsdWUoIkFYQ2FyZXRCcm93c2luZ0VuYWJsZWQiLCB0cnVlKTsKKyAgICAgICAK
KyAgICAgICAvLyBNYWtlIHN1cmUgdGhlIGlmcmFtZSBoYXMgYSBkb2N0eXBlIG5vZGUKKyAgICAg
ICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyYW1lIik7CisgICAgICAg
dmFyIGlkb2N1bWVudCA9IGlmcmFtZS5jb250ZW50RG9jdW1lbnQ7CisgICAgICAgaWRvY3VtZW50
Lm9wZW4oKTsKKyAgICAgICBpZG9jdW1lbnQud3JpdGUoIjwhRE9DVFlQRSBodG1sPiIpOworICAg
ICAgIGlkb2N1bWVudC53cml0ZSgiPGh0bWw+Iik7CisgICAgICAgaWRvY3VtZW50LndyaXRlKCI8
aGVhZD48L2hlYWQ+Iik7CisgICAgICAgaWRvY3VtZW50LndyaXRlKCI8Ym9keT48L2JvZHk+Iik7
CisgICAgICAgaWRvY3VtZW50LndyaXRlKCI8L2h0bWw+Iik7CisgICAgICAgaWRvY3VtZW50LmNs
b3NlKCk7CisgICAgICAgCisgICAgICAgLy8gU2VsZWN0IGFsbCB0aGUgY29udGVudHMgaW4gdGhl
IGNvbnRhaW5lciwgYW5kIGdldCB0aGUgc2VsZWN0aW9uIHJhbmdlLgorICAgICAgIHZhciBjb250
YWluZXIgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImNv
bnRhaW5lciIpOworICAgICAgIHZhciBjb250YWluZXJFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvbnRhaW5lciIpOworICAgICAgIHNlbGVjdEVsZW1lbnRDb250ZW50cyhjb250
YWluZXJFbGVtZW50KTsgCisgICAgICAgdmFyIHNlbGVjdGlvblJhbmdlID0gY29udGFpbmVyLnNl
bGVjdGVkVGV4dE1hcmtlclJhbmdlKCk7CisgICAgICAgCisgICAgICAgdmFyIHN0YXJ0TWFya2Vy
ID0gY29udGFpbmVyLnN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXJSYW5nZShzZWxlY3Rpb25S
YW5nZSk7CisgICAgICAgdmFyIGVuZE1hcmtlciA9IGNvbnRhaW5lci5lbmRUZXh0TWFya2VyRm9y
VGV4dE1hcmtlclJhbmdlKHNlbGVjdGlvblJhbmdlKTsKKyAgICAgICAKKyAgICAgICAvLyBlbmRN
YXJrZXIgaXMgbm93IGFzc29jaWF0ZWQgd2l0aCBhIGRvY3R5cGUgbm9kZSwgbWFrZSBzdXJlIGl0
IHdvbid0IGxlYWQgdG8gYSBjcmFzaC4KKyAgICAgICB2YXIgbWFya2VyUmFuZ2UgPSBjb250YWlu
ZXIudGV4dE1hcmtlclJhbmdlRm9yTWFya2VycyhlbmRNYXJrZXIsIHN0YXJ0TWFya2VyKTsKKyAg
ICB9CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288632</attachid>
            <date>2016-09-12 16:14:42 -0700</date>
            <delta_ts>2016-09-12 18:00:38 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>6167</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNTgzNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE2LTA5LTEyICBOYW4gV2Fu
ZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IENyYXNoIGF0IFdlYkNvcmU6OlJh
bmdlOjpjb21wYXJlQm91bmRhcnlQb2ludHMoV2ViQ29yZTo6UmFuZ2U6OkNvbXBhcmVIb3csIFdl
YkNvcmU6OlJhbmdlIGNvbnN0JiwgaW50JikgY29uc3QgKyAyMworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxODc4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gZnVuY3Rpb24gY2hhcmFjdGVyT2Zmc2V0
c0luT3JkZXIoY29uc3QgQ2hhcmFjdGVyT2Zmc2V0JiwgY29uc3QgQ2hhcmFjdGVyT2Zmc2V0Jiks
IHdlIGFyZSBjcmVhdGluZyB0d28KKyAgICAgICAgcmFuZ2VzIGJhc2VkIG9uIHRoZSBub2RlcyB0
aGF0IGFyZSBhc3NvY2lhdGVkIHRvIHRoZSBwYXNzZWQgaW4gQ2hhcmFjdGVyT2Zmc2V0cy4gV2hl
biB0aGUgZmlyc3Qgbm9kZSBpcyBhIGRvY3R5cGUKKyAgICAgICAgbm9kZSwgdGhlIGZpcnN0IHJh
bmdlIHdpbGwgYmUgYSBudWxscHRyLCBhbmQgZGVyZWZlcmVuY2luZyBpdCBsZWFkcyB0byBhIGNy
YXNoLiBGaXhlZCB0aGlzIGJ5IGFkZGluZyBhIAorICAgICAgICBOVUxMIGNoZWNrLgorCisgICAg
ICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvbWFjL2RvY3R5cGUtbm9kZS1pbi10ZXh0LW1hcmtlci1j
cmFzaC5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y2hhcmFjdGVyT2Zmc2V0c0luT3JkZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6cmVzZXROb2RlQW5kT2Zmc2V0Rm9yUmVwbGFjZWROb2RlKToKKwogMjAxNi0wOS0xMiAg
QWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVS
TFBhcnNlcjogQ29ycmVjdGx5IGhhbmRsZSByZWxhdGl2ZSBVUkxzIHRoYXQgYXJlIGp1c3QgYSBz
Y2hlbWUgYW5kIGEgY29sb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmNwcAkocmV2aXNpb24gMjA1ODM0KQorKysgU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY4MSw3
ICsxNjgxLDcgQEAgc3RhdGljIGJvb2wgY2hhcmFjdGVyT2Zmc2V0c0luT3JkZXIoY29ucwogICAg
IFJlZlB0cjxSYW5nZT4gcmFuZ2UxID0gQVhPYmplY3RDYWNoZTo6cmFuZ2VGb3JOb2RlQ29udGVu
dHMobm9kZTEpOwogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UyID0gQVhPYmplY3RDYWNoZTo6cmFu
Z2VGb3JOb2RlQ29udGVudHMobm9kZTIpOwogCi0gICAgcmV0dXJuICFyYW5nZTIgfHwgcmFuZ2Ux
LT5jb21wYXJlQm91bmRhcnlQb2ludHMoUmFuZ2U6OlNUQVJUX1RPX1NUQVJULCAqcmFuZ2UyLCBJ
R05PUkVfRVhDRVBUSU9OKSA8PSAwOworICAgIHJldHVybiAhcmFuZ2UyIHx8IChyYW5nZTEgJiYg
cmFuZ2UxLT5jb21wYXJlQm91bmRhcnlQb2ludHMoUmFuZ2U6OlNUQVJUX1RPX1NUQVJULCAqcmFu
Z2UyLCBJR05PUkVfRVhDRVBUSU9OKSA8PSAwKTsKIH0KIAogc3RhdGljIE5vZGUqIHJlc2V0Tm9k
ZUFuZE9mZnNldEZvclJlcGxhY2VkTm9kZShOb2RlKiByZXBsYWNlZE5vZGUsIGludCYgb2Zmc2V0
LCBpbnQgY2hhcmFjdGVyQ291bnQpCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDU4MzQpCisrKyBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxNi0w
OS0xMiAgTmFuIFdhbmcgIDxuX3dhbmdAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBDcmFzaCBh
dCBXZWJDb3JlOjpSYW5nZTo6Y29tcGFyZUJvdW5kYXJ5UG9pbnRzKFdlYkNvcmU6OlJhbmdlOjpD
b21wYXJlSG93LCBXZWJDb3JlOjpSYW5nZSBjb25zdCYsIGludCYpIGNvbnN0ICsgMjMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTg3OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9tYWMvZG9jdHlwZS1ub2RlLWluLXRleHQtbWFya2VyLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvZG9jdHlwZS1ub2RlLWluLXRleHQtbWFy
a2VyLWNyYXNoLmh0bWw6IEFkZGVkLgorCiAyMDE2LTA5LTEyICBNYXR0IEJha2VyICA8bWF0dGJh
a2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgVGVzdEhhcm5lc3Mg
YXNzZXJ0aW9ucy9leHBlY3RhdGlvbnMgdG8gcHJvdmlkZSBhZGRpdGlvbmFsIHNlbWFudGljcyBz
aW1pbGFyIHRvIFhDVGVzdApJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvZG9j
dHlwZS1ub2RlLWluLXRleHQtbWFya2VyLWNyYXNoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9kb2N0eXBlLW5vZGUtaW4tdGV4dC1tYXJr
ZXItY3Jhc2gtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbWFjL2RvY3R5cGUtbm9kZS1pbi10ZXh0LW1hcmtlci1jcmFzaC1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAordGV4dAorVGhpcyB0ZXN0cyB0aGF0
IGNyZWF0aW5nIGEgdGV4dCBtYXJrZXIgcmFuZ2Ugd2l0aCBhIHRleHQgbWFya2VyIHRoYXQgYXNz
b2NpYXRlZCB0byBhIGRvY3R5cGUgbm9kZSB3b24ndCBsZWFkIHRvIGNyYXNoLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2Rv
Y3R5cGUtbm9kZS1pbi10ZXh0LW1hcmtlci1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2RvY3R5cGUtbm9kZS1pbi10ZXh0LW1hcmtlci1jcmFz
aC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL2Rv
Y3R5cGUtbm9kZS1pbi10ZXh0LW1hcmtlci1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNTkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPGRpdiBpZD0i
Y29udGFpbmVyIiByb2xlPSJncm91cCIgY29udGVudGVkaXRhYmx0PSJ0cnVlIj50ZXh0PGlmcmFt
ZSBpZD0iZnJhbWUiIG1hcmdpbndpZHRoPSIwIiBtYXJnaW5oZWlnaHQ9IjAiIGZyYW1lYm9yZGVy
PSIwIiBzY3JvbGxpbmc9Im5vIiBoZWlnaHQ9IjEwMCUiIHdpZHRoPSIxMDAlIiBzdHlsZT0icGFk
ZGluZzogMHB4OyBtYXJnaW46IDBweDsgYm9yZGVyOiAwcHg7IGhlaWdodDogMTAwJTsgd2lkdGg6
IDEwMCU7Ij48L2lmcmFtZT48L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKworICAgIGRlc2NyaXB0aW9uKCJUaGlz
IHRlc3RzIHRoYXQgY3JlYXRpbmcgYSB0ZXh0IG1hcmtlciByYW5nZSB3aXRoIGEgdGV4dCBtYXJr
ZXIgdGhhdCBhc3NvY2lhdGVkIHRvIGEgZG9jdHlwZSBub2RlIHdvbid0IGxlYWQgdG8gY3Jhc2gu
Iik7CisgICAgCisgICAgZnVuY3Rpb24gc2VsZWN0RWxlbWVudENvbnRlbnRzKGVsKSB7CisgICAg
ICAgIHZhciByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CisgICAgICAgIHJhbmdlLnNl
bGVjdE5vZGVDb250ZW50cyhlbCk7CisgICAgICAgIHZhciBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0
aW9uKCk7CisgICAgICAgIHNlbC5yZW1vdmVBbGxSYW5nZXMoKTsKKyAgICAgICAgc2VsLmFkZFJh
bmdlKHJhbmdlKTsKKyAgICB9CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9s
bGVyKSB7CisKKyAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5lbmFibGVFbmhhbmNlZEFj
Y2Vzc2liaWxpdHkodHJ1ZSk7CisgICAgICAgdmFyIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5yb290RWxlbWVudC5jaGlsZEF0SW5kZXgoMCk7CisgICAgICAgd2ViQXJlYS5zZXRC
b29sQXR0cmlidXRlVmFsdWUoIkFYQ2FyZXRCcm93c2luZ0VuYWJsZWQiLCB0cnVlKTsKKyAgICAg
ICAKKyAgICAgICAvLyBNYWtlIHN1cmUgdGhlIGlmcmFtZSBoYXMgYSBkb2N0eXBlIG5vZGUKKyAg
ICAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyYW1lIik7CisgICAg
ICAgdmFyIGlkb2N1bWVudCA9IGlmcmFtZS5jb250ZW50RG9jdW1lbnQ7CisgICAgICAgaWRvY3Vt
ZW50Lm9wZW4oKTsKKyAgICAgICBpZG9jdW1lbnQud3JpdGUoIjwhRE9DVFlQRSBodG1sPiIpOwor
ICAgICAgIGlkb2N1bWVudC53cml0ZSgiPGh0bWw+Iik7CisgICAgICAgaWRvY3VtZW50LndyaXRl
KCI8aGVhZD48L2hlYWQ+Iik7CisgICAgICAgaWRvY3VtZW50LndyaXRlKCI8Ym9keT48L2JvZHk+
Iik7CisgICAgICAgaWRvY3VtZW50LndyaXRlKCI8L2h0bWw+Iik7CisgICAgICAgaWRvY3VtZW50
LmNsb3NlKCk7CisgICAgICAgCisgICAgICAgLy8gU2VsZWN0IGFsbCB0aGUgY29udGVudHMgaW4g
dGhlIGNvbnRhaW5lciwgYW5kIGdldCB0aGUgc2VsZWN0aW9uIHJhbmdlLgorICAgICAgIHZhciBj
b250YWluZXIgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQo
ImNvbnRhaW5lciIpOworICAgICAgIHZhciBjb250YWluZXJFbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpOworICAgICAgIHNlbGVjdEVsZW1lbnRDb250ZW50cyhj
b250YWluZXJFbGVtZW50KTsgCisgICAgICAgdmFyIHNlbGVjdGlvblJhbmdlID0gY29udGFpbmVy
LnNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKCk7CisgICAgICAgCisgICAgICAgdmFyIHN0YXJ0TWFy
a2VyID0gY29udGFpbmVyLnN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXJSYW5nZShzZWxlY3Rp
b25SYW5nZSk7CisgICAgICAgdmFyIGVuZE1hcmtlciA9IGNvbnRhaW5lci5lbmRUZXh0TWFya2Vy
Rm9yVGV4dE1hcmtlclJhbmdlKHNlbGVjdGlvblJhbmdlKTsKKyAgICAgICAKKyAgICAgICAvLyBl
bmRNYXJrZXIgaXMgbm93IGFzc29jaWF0ZWQgd2l0aCBhIGRvY3R5cGUgbm9kZSwgbWFrZSBzdXJl
IGl0IHdvbid0IGxlYWQgdG8gYSBjcmFzaC4KKyAgICAgICB2YXIgbWFya2VyUmFuZ2UgPSBjb250
YWluZXIudGV4dE1hcmtlclJhbmdlRm9yTWFya2VycyhlbmRNYXJrZXIsIHN0YXJ0TWFya2VyKTsK
KyAgICB9CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQo=
</data>
<flag name="review"
          id="311936"
          type_id="1"
          status="+"
          setter="cfleizach"
    />
    <flag name="commit-queue"
          id="311953"
          type_id="3"
          status="-"
          setter="n_wang"
    />
          </attachment>
      

    </bug>

</bugzilla>