<?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>169062</bug_id>
          
          <creation_ts>2017-03-01 15:49:52 -0800</creation_ts>
          <short_desc>Data interaction support for WK1</short_desc>
          <delta_ts>2017-03-02 11:16:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Megan Gardner">megan_gardner</assigned_to>
          <cc>bdakin</cc>
    
    <cc>thorton</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1282512</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-03-01 15:49:52 -0800</bug_when>
    <thetext>Data interaction support for WK1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1282520</commentid>
    <comment_count>1</comment_count>
      <attachid>303138</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-03-01 15:58:52 -0800</bug_when>
    <thetext>Created attachment 303138
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1282527</commentid>
    <comment_count>2</comment_count>
      <attachid>303138</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-03-01 16:50:52 -0800</bug_when>
    <thetext>Comment on attachment 303138
Patch

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

&gt; Source/WebKit/mac/WebCoreSupport/WebDragClient.mm:64
&gt; +

Nit - extra newline here.

&gt; Source/WebKit/mac/WebView/WebView.mm:623
&gt; +    CGRect _selectionRectInRootViewCoordinates;

Can we @synthesize these properties instead of making these all ivars?

&gt; Source/WebKit/mac/WebView/WebView.mm:642
&gt; +    for (FloatRect rect : indicatorData.textRectsInBoundingRectCoordinates)

Nit - auto rect here.

&gt; Source/WebKit/mac/WebView/WebViewData.h:289
&gt; +    

Nit - extra newline here.

&gt; Source/WebKit/mac/WebView/WebViewInternal.h:259
&gt; +- (void)_setDataInteractionData:(CGImageRef)image textIndicator:(WebCore::TextIndicatorData&amp;)textIndicator atClientPosition:(CGPoint)clientPosition anchorPoint:(CGPoint)anchorPoint action:(uint64_t)action;

I think this should be an std::optional, or a RefPtr, or just a raw pointer if the first two are not available. We plumb an optional text indicator here, if I understand correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1282554</commentid>
    <comment_count>3</comment_count>
      <attachid>303152</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-03-01 18:01:48 -0800</bug_when>
    <thetext>Created attachment 303152
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1282558</commentid>
    <comment_count>4</comment_count>
      <attachid>303154</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-03-01 18:14:32 -0800</bug_when>
    <thetext>Created attachment 303154
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1282559</commentid>
    <comment_count>5</comment_count>
      <attachid>303154</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-03-01 18:19:29 -0800</bug_when>
    <thetext>Comment on attachment 303154
Patch

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

r=me, with some minor nits. You may need a WebKit2 reviewer (Tim, Beth, Simon, Dan...) to rubber stamp the tiny WK2 change though.

&gt; Source/WebKit/mac/WebView/WebView.mm:1789
&gt; +        _private-&gt;textIndicatorData = [[WebUITextIndicatorData alloc] initWithImage:image TextIndicatorData:indicatorData.value() scale:_private-&gt;page-&gt;deviceScaleFactor()];

Nit - According to https://webkit.org/code-style-guidelines, &quot;each piece of the selector should start with a lowercase letter and use intercaps.&quot; -- IMO we should make this textIndicatorData, and also just pass nil to avoid having two different initializers.

&gt; Source/WebKit/mac/WebView/WebView.mm:1810
&gt; +#endif // ENABLE(DATA_INTERACTION)

Nit - should be // ENABLE(DATA_INTERACTION) &amp;&amp; defined(__cplusplus)

&gt; Source/WebKit/mac/WebView/WebViewData.h:288
&gt; +    WebUITextIndicatorData *textIndicatorData;

This should be a RetainPtr, and we should use adoptNS() when we init it.

&gt; Source/WebKit/mac/WebView/WebViewPrivate.h:193
&gt; +

Nit - extra newline</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1282567</commentid>
    <comment_count>6</comment_count>
      <attachid>303155</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-03-01 18:45:30 -0800</bug_when>
    <thetext>Created attachment 303155
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1282581</commentid>
    <comment_count>7</comment_count>
      <attachid>303161</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-03-01 19:24:23 -0800</bug_when>
    <thetext>Created attachment 303161
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1282582</commentid>
    <comment_count>8</comment_count>
      <attachid>303161</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-03-01 19:28:17 -0800</bug_when>
    <thetext>Comment on attachment 303161
Patch

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

&gt; Source/WebKit2/ChangeLog:4
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=169062

It would be great to include the rdar link here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1282807</commentid>
    <comment_count>9</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2017-03-02 11:16:37 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/213292</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303138</attachid>
            <date>2017-03-01 15:58:52 -0800</date>
            <delta_ts>2017-03-01 18:01:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169062-20170301155851.patch</filename>
            <type>text/plain</type>
            <size>12784</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMzA4MCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE3LTAzLTAxICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgRGF0YSBpbnRlcmFj
dGlvbiBzdXBwb3J0IGZvciBXSzEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2OTA2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFsbG93IGZvciBzZXBhcmF0ZSBhZGRpdGlvbnMgZmlsZXMgZm9yIFdLMSBh
bmQgV0syLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJh
Z0NsaWVudE1hYy5tbToKKwogMjAxNy0wMi0yNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIE9wdGltaXplIGNoZWNrV2ViUlRDQXZhaWxhYmls
aXR5CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9X
ZWJEcmFnQ2xpZW50TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0JKHJldmlzaW9uIDIxMzA4
MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRy
YWdDbGllbnRNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTUxLDggKzUxLDggQEAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9XZWJEcmFn
Q2xpZW50QWRkaXRpb25zLm1tPikKLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJEcmFnQ2xp
ZW50QWRkaXRpb25zLm1tPgorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2lu
Y2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9XZWJEcmFnQ2xpZW50QWRkaXRpb25zV2ViS2l0Mi5tbT4p
CisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV2ViRHJhZ0NsaWVudEFkZGl0aW9uc1dlYktpdDIu
bW0+CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxMzI1MCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE3LTAzLTAxICBNZWdhbiBHYXJkbmVyICA8bWVnYW5f
Z2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgRGF0YSBpbnRlcmFjdGlvbiBzdXBwb3J0IGZv
ciBXSzEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
OTA2MgorCisgICAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIGRhdGEgaW50ZXJhY3Rpb24gaW4gV0sx
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tOgorICAgICAgICAq
IFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVUlUZXh0SW5kaWNhdG9yRGF0YSBp
bml0V2l0aEltYWdlOlRleHRJbmRpY2F0b3JEYXRhOnNjYWxlOl0pOgorICAgICAgICAoLVtXZWJV
SVRleHRJbmRpY2F0b3JEYXRhIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV2ViVmlldyBfcmVxdWVz
dFN0YXJ0RGF0YUludGVyYWN0aW9uOmdsb2JhbFBvc2l0aW9uOl0pOgorICAgICAgICAoLVtXZWJW
aWV3IF9zZXREYXRhSW50ZXJhY3Rpb25EYXRhOnRleHRJbmRpY2F0b3I6YXRDbGllbnRQb3NpdGlv
bjphbmNob3JQb2ludDphY3Rpb246XSk6CisgICAgICAgICgtW1dlYlZpZXcgX2dldERhdGFJbnRl
cmFjdGlvbkRhdGFdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLmg6CisgICAgICAg
ICogV2ViVmlldy9XZWJWaWV3RGF0YS5tbToKKyAgICAgICAgKC1bV2ViVmlld1ByaXZhdGUgZGVh
bGxvY10pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICog
V2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oOgorCiAyMDE3LTAyLTI3ICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQmVnaW4gZW5hYmxpbmcgV2Vi
UlRDIG9uIDY0LWJpdApJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RHJhZ0NsaWVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJEcmFnQ2xpZW50Lm1tCShyZXZpc2lvbiAyMTMwODApCisrKyBTb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC01
OSw2ICs1OSwxMSBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAorI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9XZWJEcmFn
Q2xpZW50QWRkaXRpb25zV2ViS2l0MS5tbT4pCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV2Vi
RHJhZ0NsaWVudEFkZGl0aW9uc1dlYktpdDEubW0+CisKKyNlbmRpZgorCiBXZWJEcmFnQ2xpZW50
OjpXZWJEcmFnQ2xpZW50KFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgOiBtX3dlYlZpZXcod2ViVmll
dykgCiB7CkBAIC0xOTgsMTEgKzIwMywxMSBAQCBXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uIFdl
YkRyYWdDbGllbnQ6CiB2b2lkIFdlYkRyYWdDbGllbnQ6OndpbGxQZXJmb3JtRHJhZ1NvdXJjZUFj
dGlvbihXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYs
IFdlYkNvcmU6OkRhdGFUcmFuc2ZlciYpCiB7CiB9Ci0KKyNpZiAhRU5BQkxFKERBVEFfSU5URVJB
Q1RJT04pCiB2b2lkIFdlYkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyhXZWJDb3JlOjpEcmFnSW1hZ2Us
IGNvbnN0IEludFBvaW50JiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50JiwgRGF0
YVRyYW5zZmVyJiwgRnJhbWUmLCBXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uKQogewogfQotCisj
ZW5kaWYKIHZvaWQgV2ViRHJhZ0NsaWVudDo6YmVnaW5EcmFnKERyYWdJdGVtLCBGcmFtZSYsIGNv
bnN0IEludFBvaW50JiwgY29uc3QgSW50UG9pbnQmLCBEYXRhVHJhbnNmZXImLCBEcmFnU291cmNl
QWN0aW9uKQogewogfQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkocmV2
aXNpb24gMjEzMDgwKQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0xOTAsNiArMTkwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvU2VjdXJp
dHlQb2xpY3kuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbXBvcnQgPFdlYkNv
cmUvU29ja2V0UHJvdmlkZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4KICNp
bXBvcnQgPFdlYkNvcmUvU3R5bGVQcm9wZXJ0aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRS
ZXNvdXJjZURlY29kZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KQEAgLTIz
OCw3ICsyMzksNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9BVktpdFNQSS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9Mb29rdXBTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvTlNJbW1lZGlhdGVBY3Rpb25HZXN0
dXJlUmVjb2duaXplclNQSS5oPgotI2ltcG9ydCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgogI2lt
cG9ydCA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRp
Y2F0b3JXaW5kb3cuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJv
bGxlci5oPgpAQCAtMzE5LDYgKzMxOSwxMiBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJQbGF5YmFj
a1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5oPgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQV9J
TlRFUkFDVElPTikKKyNpbXBvcnQgPFVJS2l0L1VJSW1hZ2UuaD4KK1NPRlRfTElOS19GUkFNRVdP
UksoVUlLaXQpCitTT0ZUX0xJTktfQ0xBU1MoVUlLaXQsIFVJSW1hZ2UpCisjZW5kaWYKKwogI2lm
IEhBVkUoVE9VQ0hfQkFSKSAmJiBFTkFCTEUoV0VCX1BMQVlCQUNLX0NPTlRST0xTX01BTkFHRVIp
CiBTT0ZUX0xJTktfRlJBTUVXT1JLKEFWS2l0KQogU09GVF9MSU5LX0NMQVNTKEFWS2l0LCBBVkZ1
bmN0aW9uQmFyUGxheWJhY2tDb250cm9sc1Byb3ZpZGVyKQpAQCAtNjExLDYgKzYxNyw1MyBAQCBw
cml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAorI2lmIFBMQVRGT1JNKElPUykKK0Bp
bXBsZW1lbnRhdGlvbiBXZWJVSVRleHRJbmRpY2F0b3JEYXRhIHsKKyAgICBVSUltYWdlICpfZGF0
YUludGVyYWN0aW9uSW1hZ2U7CisgICAgQ0dSZWN0IF9zZWxlY3Rpb25SZWN0SW5Sb290Vmlld0Nv
b3JkaW5hdGVzOworICAgIENHUmVjdCBfdGV4dEJvdW5kaW5nUmVjdEluUm9vdFZpZXdDb29yZGlu
YXRlczsKKyAgICBOU0FycmF5PE5TVmFsdWUgKj4gKl90ZXh0UmVjdHNJbkJvdW5kaW5nUmVjdENv
b3JkaW5hdGVzOworICAgIFVJSW1hZ2UgKl9jb250ZW50SW1hZ2VXaXRoSGlnaGxpZ2h0OworICAg
IFVJSW1hZ2UgKl9jb250ZW50SW1hZ2U7Cit9CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXZWJV
SVRleHRJbmRpY2F0b3JEYXRhIChXZWJVSVRleHRJbmRpY2F0b3JJbnRlcm5hbCkKKy0gKFdlYlVJ
VGV4dEluZGljYXRvckRhdGEgKilpbml0V2l0aEltYWdlOihDR0ltYWdlUmVmKWltYWdlIFRleHRJ
bmRpY2F0b3JEYXRhOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSAmKWluZGljYXRvckRhdGEg
c2NhbGU6KENHRmxvYXQpc2NhbGUKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkK
KyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICAKKyAgICBfZGF0YUludGVyYWN0aW9uSW1hZ2UgPSBb
W2dldFVJSW1hZ2VDbGFzcygpIGFsbG9jXSBpbml0V2l0aENHSW1hZ2U6aW1hZ2Ugc2NhbGU6c2Nh
bGUgb3JpZW50YXRpb246VUlJbWFnZU9yaWVudGF0aW9uRG93bk1pcnJvcmVkXTsKKyAgICBfc2Vs
ZWN0aW9uUmVjdEluUm9vdFZpZXdDb29yZGluYXRlcyA9IGluZGljYXRvckRhdGEuc2VsZWN0aW9u
UmVjdEluUm9vdFZpZXdDb29yZGluYXRlczsKKyAgICBfdGV4dEJvdW5kaW5nUmVjdEluUm9vdFZp
ZXdDb29yZGluYXRlcyA9IGluZGljYXRvckRhdGEudGV4dEJvdW5kaW5nUmVjdEluUm9vdFZpZXdD
b29yZGluYXRlczsKKyAgICAKKyAgICBOU011dGFibGVBcnJheSAqdGV4dFJlY3RzSW5Cb3VuZGlu
Z1JlY3RDb29yZGluYXRlcyA9IFtOU011dGFibGVBcnJheSBhcnJheV07CisgICAgZm9yIChGbG9h
dFJlY3QgcmVjdCA6IGluZGljYXRvckRhdGEudGV4dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29yZGlu
YXRlcykKKyAgICAgICAgW3RleHRSZWN0c0luQm91bmRpbmdSZWN0Q29vcmRpbmF0ZXMgYWRkT2Jq
ZWN0OltOU1ZhbHVlIHZhbHVlV2l0aENHUmVjdDpyZWN0XV07CisgICAgX3RleHRSZWN0c0luQm91
bmRpbmdSZWN0Q29vcmRpbmF0ZXMgPSBbTlNBcnJheSBhcnJheVdpdGhBcnJheTp0ZXh0UmVjdHNJ
bkJvdW5kaW5nUmVjdENvb3JkaW5hdGVzXTsKKyAgICBfY29udGVudEltYWdlU2NhbGVGYWN0b3Ig
PSBpbmRpY2F0b3JEYXRhLmNvbnRlbnRJbWFnZVNjYWxlRmFjdG9yOworICAgIGlmIChpbmRpY2F0
b3JEYXRhLmNvbnRlbnRJbWFnZVdpdGhIaWdobGlnaHQpCisgICAgICAgIF9jb250ZW50SW1hZ2VX
aXRoSGlnaGxpZ2h0ID0gW1tnZXRVSUltYWdlQ2xhc3MoKSBhbGxvY10gaW5pdFdpdGhDR0ltYWdl
OmluZGljYXRvckRhdGEuY29udGVudEltYWdlV2l0aEhpZ2hsaWdodC5nZXQoKS0+bmF0aXZlSW1h
Z2UoKS5nZXQoKSBzY2FsZTpzY2FsZSBvcmllbnRhdGlvbjpVSUltYWdlT3JpZW50YXRpb25Eb3du
TWlycm9yZWRdOworICAgIGlmIChpbmRpY2F0b3JEYXRhLmNvbnRlbnRJbWFnZSkKKyAgICAgICAg
X2NvbnRlbnRJbWFnZSA9IFtbZ2V0VUlJbWFnZUNsYXNzKCkgYWxsb2NdIGluaXRXaXRoQ0dJbWFn
ZTppbmRpY2F0b3JEYXRhLmNvbnRlbnRJbWFnZS5nZXQoKS0+bmF0aXZlSW1hZ2UoKS5nZXQoKSBz
Y2FsZTpzY2FsZSBvcmllbnRhdGlvbjpVSUltYWdlT3JpZW50YXRpb25Eb3duTWlycm9yZWRdOwor
ICAgIAorICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBbX2Rh
dGFJbnRlcmFjdGlvbkltYWdlIHJlbGVhc2VdOworICAgIFtfdGV4dFJlY3RzSW5Cb3VuZGluZ1Jl
Y3RDb29yZGluYXRlcyByZWxlYXNlXTsKKyAgICBbX2NvbnRlbnRJbWFnZVdpdGhIaWdobGlnaHQg
cmVsZWFzZV07CisgICAgW19jb250ZW50SW1hZ2UgcmVsZWFzZV07CisgICAgCisgICAgW3N1cGVy
IGRlYWxsb2NdOworfQorCitAZW5kCisjZW5kaWYKKwogQGludGVyZmFjZSBXZWJWaWV3IChXZWJG
aWxlSW50ZXJuYWwpCiAjaWYgIVBMQVRGT1JNKElPUykKIC0gKGZsb2F0KV9kZXZpY2VTY2FsZUZh
Y3RvcjsKQEAgLTE3MTAsNyArMTc2MywzNiBAQCAtICh2b2lkKXVwZGF0ZUxheW91dElnbm9yZVBl
bmRpbmdTdHlsZVNoCiAgICAgICAgIH0KICAgICB9KTsKIH0KLSNlbmRpZiAvLyBQTEFURk9STShJ
T1MpCisjZW5kaWYKKworI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQorLSAoQk9PTClfcmVx
dWVzdFN0YXJ0RGF0YUludGVyYWN0aW9uOihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbFBv
c2l0aW9uOihDR1BvaW50KWdsb2JhbFBvc2l0aW9uCit7CisgICAgcmV0dXJuIF9wcml2YXRlLT5w
YWdlLT5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS50cnlUb0JlZ2luRGF0YUludGVyYWN0aW9u
QXRQb2ludChJbnRQb2ludChjbGllbnRQb3NpdGlvbiksIEludFBvaW50KGdsb2JhbFBvc2l0aW9u
KSk7Cit9CisKKy0gKHZvaWQpX3NldERhdGFJbnRlcmFjdGlvbkRhdGE6KENHSW1hZ2VSZWYpaW1h
Z2UgdGV4dEluZGljYXRvcjooVGV4dEluZGljYXRvckRhdGEmKWluZGljYXRvckRhdGEgYXRDbGll
bnRQb3NpdGlvbjooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBhbmNob3JQb2ludDooQ0dQb2ludClh
bmNob3JQb2ludCBhY3Rpb246KHVpbnQ2NF90KWFjdGlvbgoreworICAgIF9wcml2YXRlLT50ZXh0
SW5kaWNhdG9yRGF0YSA9IFtbV2ViVUlUZXh0SW5kaWNhdG9yRGF0YSBhbGxvY10gaW5pdFdpdGhJ
bWFnZTppbWFnZSBUZXh0SW5kaWNhdG9yRGF0YTppbmRpY2F0b3JEYXRhIHNjYWxlOl9wcml2YXRl
LT5wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpXTsKK30KKworLSAoV2ViVUlUZXh0SW5kaWNhdG9y
RGF0YSAqKV9nZXREYXRhSW50ZXJhY3Rpb25EYXRhCit7CisgICAgcmV0dXJuIF9wcml2YXRlLT50
ZXh0SW5kaWNhdG9yRGF0YTsKK30KKyNlbHNlCistIChCT09MKV9yZXF1ZXN0U3RhcnREYXRhSW50
ZXJhY3Rpb246KENHUG9pbnQpY2xpZW50UG9zaXRpb24gZ2xvYmFsUG9zaXRpb246KENHUG9pbnQp
Z2xvYmFsUG9zaXRpb24KK3sKKyAgICByZXR1cm4gTk87Cit9CistICh2b2lkKV9zZXREYXRhSW50
ZXJhY3Rpb25EYXRhOihDR0ltYWdlUmVmKWltYWdlIHRleHRJbmRpY2F0b3I6KFRleHRJbmRpY2F0
b3JEYXRhJilpbmRpY2F0b3JEYXRhIGF0Q2xpZW50UG9zaXRpb246KENHUG9pbnQpY2xpZW50UG9z
aXRpb24gYW5jaG9yUG9pbnQ6KENHUG9pbnQpYW5jaG9yUG9pbnQgYWN0aW9uOih1aW50NjRfdClh
Y3Rpb24KK3sKK30KKy0gKFdlYlVJVGV4dEluZGljYXRvckRhdGEgKilfZ2V0RGF0YUludGVyYWN0
aW9uRGF0YQoreworICAgIHJldHVybiBuaWw7Cit9CisjZW5kaWYgLy8gRU5BQkxFKERBVEFfSU5U
RVJBQ1RJT04pCiAKIHN0YXRpYyBOU011dGFibGVTZXQgKmtub3duUGx1Z2luTUlNRVR5cGVzKCkK
IHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgJKHJldmlzaW9u
IDIxMzA4MCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAkod29y
a2luZyBjb3B5KQpAQCAtNTUsNiArNTUsOCBAQCBjbGFzcyBXZWJQbGF5YmFja1Nlc3Npb25Nb2Rl
bE1lZGlhRWxlbWVuCiAjZW5kaWYKIH0KIAorQGNsYXNzIFVJSW1hZ2U7CitAY2xhc3MgV2ViVUlU
ZXh0SW5kaWNhdG9yRGF0YTsKIEBjbGFzcyBXZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyOwog
QGNsYXNzIFdlYkluc3BlY3RvcjsKIEBjbGFzcyBXZWJOb2RlSGlnaGxpZ2h0OwpAQCAtMjgyLDYg
KzI4NCw5IEBAIEBpbnRlcmZhY2UgV2ViVmlld1ByaXZhdGUgOiBOU09iamVjdCB7CiAgICAgaW50
MzJfdCBkaWREcmF3VGlsZXM7CiAgICAgV1RGOjpMb2NrIHBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5
b3V0UmVjdE11dGV4OwogICAgIENHUmVjdCBwZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3Q7
CisgICAgUmV0YWluUHRyPFVJSW1hZ2U+IGRhdGFJbnRlcmFjdGlvbkltYWdlOworICAgIFdlYlVJ
VGV4dEluZGljYXRvckRhdGEgKnRleHRJbmRpY2F0b3JEYXRhOworICAgIAogI2VuZGlmCiAKICNp
ZiAhUExBVEZPUk0oSU9TKQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
RGF0YS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdE
YXRhLm1tCShyZXZpc2lvbiAyMTMwODApCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXdEYXRhLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMTIsNiArMjEyLDcgQEAgLSAodm9pZClk
ZWFsbG9jCiAgICAgW2Zvcm1EZWxlZ2F0ZUZvcndhcmRlciByZWxlYXNlXTsKICAgICBbX2NhcmV0
Q2hhbmdlTGlzdGVuZXJzIHJlbGVhc2VdOwogICAgIFtfZml4ZWRQb3NpdGlvbkNvbnRlbnQgcmVs
ZWFzZV07CisgICAgW3RleHRJbmRpY2F0b3JEYXRhIHJlbGVhc2VdOwogI2VuZGlmCiAKICAgICBb
c3VwZXIgZGVhbGxvY107CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdJ
bnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
d0ludGVybmFsLmgJKHJldmlzaW9uIDIxMzA4MCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlld0ludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcgQEAKICNp
bXBvcnQgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudEVudW1zLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0xheW91dE1pbGVzdG9uZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEFsdGVybmF0aXZlV2l0
aFJhbmdlLmg+CisjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3IuaD4KICNpbXBvcnQgPFdl
YkNvcmUvVGV4dEluZGljYXRvcldpbmRvdy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlS2V5
Ym9hcmRVSU1vZGUuaD4KICNpbXBvcnQgPGZ1bmN0aW9uYWw+CkBAIC04OSw2ICs5MCwxMiBAQCBX
ZWJMYXlvdXRNaWxlc3RvbmVzIGtpdExheW91dE1pbGVzdG9uZXMoCiBPQkpDX0NMQVNTIE5TVGV4
dEFsdGVybmF0aXZlczsKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pICYm
IGRlZmluZWQoX19jcGx1c3BsdXMpCitAaW50ZXJmYWNlIFdlYlVJVGV4dEluZGljYXRvckRhdGEg
KFdlYlVJVGV4dEluZGljYXRvckludGVybmFsKQorLSAoV2ViVUlUZXh0SW5kaWNhdG9yRGF0YSAq
KWluaXRXaXRoSW1hZ2U6KENHSW1hZ2VSZWYpaW1hZ2UgVGV4dEluZGljYXRvckRhdGE6KFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JEYXRhJilpbmRpY2F0b3JEYXRhIHNjYWxlOihDR0Zsb2F0KXNjYWxl
OworQGVuZAorI2VuZGlmCisKIEBpbnRlcmZhY2UgV2ViVmlldyAoV2ViVmlld0VkaXRpbmdFeHRy
YXMpCiAtIChCT09MKV9zaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihET01SYW5nZSAqKWN1
cnJlbnRSYW5nZSB0b0RPTVJhbmdlOihET01SYW5nZSAqKXByb3Bvc2VkUmFuZ2UgYWZmaW5pdHk6
KE5TU2VsZWN0aW9uQWZmaW5pdHkpc2VsZWN0aW9uQWZmaW5pdHkgc3RpbGxTZWxlY3Rpbmc6KEJP
T0wpZmxhZzsKIEBlbmQKQEAgLTI0OCw2ICsyNTUsMTAgQEAgQGludGVyZmFjZSBXZWJWaWV3IChX
ZWJWaWV3T3RoZXJJbnRlcm5hbAogLSAoQk9PTClfZmV0Y2hDdXN0b21GaXhlZFBvc2l0aW9uTGF5
b3V0UmVjdDooTlNSZWN0KilyZWN0OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQV9JTlRFUkFD
VElPTikgJiYgZGVmaW5lZChfX2NwbHVzcGx1cykKKy0gKHZvaWQpX3NldERhdGFJbnRlcmFjdGlv
bkRhdGE6KENHSW1hZ2VSZWYpaW1hZ2UgdGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGlj
YXRvckRhdGEmKXRleHRJbmRpY2F0b3IgYXRDbGllbnRQb3NpdGlvbjooQ0dQb2ludCljbGllbnRQ
b3NpdGlvbiBhbmNob3JQb2ludDooQ0dQb2ludClhbmNob3JQb2ludCBhY3Rpb246KHVpbnQ2NF90
KWFjdGlvbjsKKyNlbmRpZgorCiAtICh2b2lkKV9wcmVmZXJlbmNlc0NoYW5nZWQ6KFdlYlByZWZl
cmVuY2VzICopcHJlZmVyZW5jZXM7CiAKICNpZiBFTkFCTEUoVklERU8pICYmIGRlZmluZWQoX19j
cGx1c3BsdXMpCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0
ZS5oCShyZXZpc2lvbiAyMTMwODApCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXdQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDYgKzU1LDcgQEAKICNlbmRpZgogI2Vu
ZGlmCiAKK0BjbGFzcyBVSUltYWdlOwogQGNsYXNzIE5TRXJyb3I7CiBAY2xhc3MgV2ViRnJhbWU7
CiBAY2xhc3MgV2ViRGV2aWNlT3JpZW50YXRpb247CkBAIC0xODAsNiArMTgxLDE5IEBAIHR5cGVk
ZWYgZW51bSB7CiAgICAgV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlbmllZAogfSBXZWJOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uOwogCisjaWYgVEFSR0VUX09TX0lQSE9ORQorQGludGVyZmFjZSBX
ZWJVSVRleHRJbmRpY2F0b3JEYXRhIDogTlNPYmplY3QKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZXRhaW4pIFVJSW1hZ2UgKmRhdGFJbnRlcmFjdGlvbkltYWdlOworQHByb3BlcnR5IChub25hdG9t
aWMsIGFzc2lnbikgQ0dSZWN0IHNlbGVjdGlvblJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXM7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBDR1JlY3QgdGV4dEJvdW5kaW5nUmVjdEluUm9v
dFZpZXdDb29yZGluYXRlczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZXRhaW4pIE5TQXJyYXk8
TlNWYWx1ZSAqPiAqdGV4dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlczsgLy8gQ0dSZWN0
IHZhbHVlcworQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgQ0dGbG9hdCBjb250ZW50SW1h
Z2VTY2FsZUZhY3RvcjsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZXRhaW4pIFVJSW1hZ2UgKmNv
bnRlbnRJbWFnZVdpdGhIaWdobGlnaHQ7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmV0YWluKSBV
SUltYWdlICpjb250ZW50SW1hZ2U7CisKK0BlbmQKKyNlbmRpZgorCiAjaWYgIVRBUkdFVF9PU19J
UEhPTkUKIEBpbnRlcmZhY2UgV2ViQ29udHJvbGxlciA6IE5TVHJlZUNvbnRyb2xsZXIgewogICAg
IElCT3V0bGV0IFdlYlZpZXcgKndlYlZpZXc7CkBAIC00NDksNyArNDYzLDEwIEBAIENvdWxkIGJl
IHdvcnRoIGFkZGluZyB0byB0aGUgQVBJLgogKyAodm9pZClfcmVsZWFzZU1lbW9yeU5vdzsKIAog
LSAodm9pZClfcmVwbGFjZUN1cnJlbnRIaXN0b3J5SXRlbTooV2ViSGlzdG9yeUl0ZW0gKilpdGVt
OwotI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKKyNlbmRpZiAvLyBUQVJHRVRfT1NfSVBIT05FCisK
Ky0gKEJPT0wpX3JlcXVlc3RTdGFydERhdGFJbnRlcmFjdGlvbjooQ0dQb2ludCljbGllbnRQb3Np
dGlvbiBnbG9iYWxQb3NpdGlvbjooQ0dQb2ludClnbG9iYWxQb3NpdGlvbjsKKy0gKFdlYlVJVGV4
dEluZGljYXRvckRhdGEgKilfZ2V0RGF0YUludGVyYWN0aW9uRGF0YTsKIAogI2lmIFRBUkdFVF9P
U19JUEhPTkUKIC8vIERlcHJlY2F0ZWQuIFVzZSAtW1dlYkRhdGFTb3VyY2UgX3F1aWNrTG9va0Nv
bnRlbnRdIGluc3RlYWQuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303152</attachid>
            <date>2017-03-01 18:01:48 -0800</date>
            <delta_ts>2017-03-01 18:14:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169062-20170301180148.patch</filename>
            <type>text/plain</type>
            <size>13552</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMzA4MCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE3LTAzLTAxICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgRGF0YSBpbnRlcmFj
dGlvbiBzdXBwb3J0IGZvciBXSzEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2OTA2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFsbG93IGZvciBzZXBhcmF0ZSBhZGRpdGlvbnMgZmlsZXMgZm9yIFdLMSBh
bmQgV0syLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJh
Z0NsaWVudE1hYy5tbToKKwogMjAxNy0wMi0yNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIE9wdGltaXplIGNoZWNrV2ViUlRDQXZhaWxhYmls
aXR5CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9X
ZWJEcmFnQ2xpZW50TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0JKHJldmlzaW9uIDIxMzA4
MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRy
YWdDbGllbnRNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTUxLDggKzUxLDggQEAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9XZWJEcmFn
Q2xpZW50QWRkaXRpb25zLm1tPikKLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJEcmFnQ2xp
ZW50QWRkaXRpb25zLm1tPgorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2lu
Y2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9XZWJEcmFnQ2xpZW50QWRkaXRpb25zV2ViS2l0Mi5tbT4p
CisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV2ViRHJhZ0NsaWVudEFkZGl0aW9uc1dlYktpdDIu
bW0+CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxMzI1MCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE3LTAzLTAxICBNZWdhbiBHYXJkbmVyICA8bWVnYW5f
Z2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgRGF0YSBpbnRlcmFjdGlvbiBzdXBwb3J0IGZv
ciBXSzEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
OTA2MgorCisgICAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIGRhdGEgaW50ZXJhY3Rpb24gaW4gV0sx
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tOgorICAgICAgICAq
IFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVUlUZXh0SW5kaWNhdG9yRGF0YSBp
bml0V2l0aEltYWdlOlRleHRJbmRpY2F0b3JEYXRhOnNjYWxlOl0pOgorICAgICAgICAoLVtXZWJV
SVRleHRJbmRpY2F0b3JEYXRhIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV2ViVmlldyBfcmVxdWVz
dFN0YXJ0RGF0YUludGVyYWN0aW9uOmdsb2JhbFBvc2l0aW9uOl0pOgorICAgICAgICAoLVtXZWJW
aWV3IF9zZXREYXRhSW50ZXJhY3Rpb25EYXRhOnRleHRJbmRpY2F0b3I6YXRDbGllbnRQb3NpdGlv
bjphbmNob3JQb2ludDphY3Rpb246XSk6CisgICAgICAgICgtW1dlYlZpZXcgX2dldERhdGFJbnRl
cmFjdGlvbkRhdGFdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLmg6CisgICAgICAg
ICogV2ViVmlldy9XZWJWaWV3RGF0YS5tbToKKyAgICAgICAgKC1bV2ViVmlld1ByaXZhdGUgZGVh
bGxvY10pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICog
V2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oOgorCiAyMDE3LTAyLTI3ICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQmVnaW4gZW5hYmxpbmcgV2Vi
UlRDIG9uIDY0LWJpdApJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RHJhZ0NsaWVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJEcmFnQ2xpZW50Lm1tCShyZXZpc2lvbiAyMTMwODApCisrKyBTb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC01
OSw2ICs1OSwxMCBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAorI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9XZWJEcmFn
Q2xpZW50QWRkaXRpb25zV2ViS2l0MS5tbT4pCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV2Vi
RHJhZ0NsaWVudEFkZGl0aW9uc1dlYktpdDEubW0+CisjZW5kaWYKKwogV2ViRHJhZ0NsaWVudDo6
V2ViRHJhZ0NsaWVudChXZWJWaWV3KiB3ZWJWaWV3KQogICAgIDogbV93ZWJWaWV3KHdlYlZpZXcp
IAogewpAQCAtMTk4LDExICsyMDIsMTEgQEAgV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbiBXZWJE
cmFnQ2xpZW50Ogogdm9pZCBXZWJEcmFnQ2xpZW50Ojp3aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rp
b24oV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBX
ZWJDb3JlOjpEYXRhVHJhbnNmZXImKQogewogfQotCisjaWYgIUVOQUJMRShEQVRBX0lOVEVSQUNU
SU9OKQogdm9pZCBXZWJEcmFnQ2xpZW50OjpzdGFydERyYWcoV2ViQ29yZTo6RHJhZ0ltYWdlLCBj
b25zdCBJbnRQb2ludCYsIGNvbnN0IEludFBvaW50JiwgY29uc3QgRmxvYXRQb2ludCYsIERhdGFU
cmFuc2ZlciYsIEZyYW1lJiwgV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbikKIHsKIH0KLQorI2Vu
ZGlmCiB2b2lkIFdlYkRyYWdDbGllbnQ6OmJlZ2luRHJhZyhEcmFnSXRlbSwgRnJhbWUmLCBjb25z
dCBJbnRQb2ludCYsIGNvbnN0IEludFBvaW50JiwgRGF0YVRyYW5zZmVyJiwgRHJhZ1NvdXJjZUFj
dGlvbikKIHsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHJldmlz
aW9uIDIxMzA4MCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkod29y
a2luZyBjb3B5KQpAQCAtMTkwLDYgKzE5MCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1NlY3VyaXR5
UG9saWN5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1NvY2tldFByb3ZpZGVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1N0eWxlUHJvcGVydGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0UmVz
b3VyY2VEZWNvZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RocmVhZENoZWNrLmg+CkBAIC0yMzgs
NyArMjM5LDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvQVZLaXRTUEkuaD4KICNpbXBvcnQgPFdlYkNv
cmUvTG9va3VwU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05TSW1tZWRpYXRlQWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXJTUEkuaD4KLSNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4KICNpbXBv
cnQgPFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0SW5kaWNh
dG9yV2luZG93Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXIuaD4KQEAgLTMxOSw2ICszMTksMTIgQEAKICNpbXBvcnQgPFdlYkNvcmUvV2ViUGxheWJhY2tT
ZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQuaD4KICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEFfSU5U
RVJBQ1RJT04pCisjaW1wb3J0IDxVSUtpdC9VSUltYWdlLmg+CitTT0ZUX0xJTktfRlJBTUVXT1JL
KFVJS2l0KQorU09GVF9MSU5LX0NMQVNTKFVJS2l0LCBVSUltYWdlKQorI2VuZGlmCisKICNpZiBI
QVZFKFRPVUNIX0JBUikgJiYgRU5BQkxFKFdFQl9QTEFZQkFDS19DT05UUk9MU19NQU5BR0VSKQog
U09GVF9MSU5LX0ZSQU1FV09SSyhBVktpdCkKIFNPRlRfTElOS19DTEFTUyhBVktpdCwgQVZGdW5j
dGlvbkJhclBsYXliYWNrQ29udHJvbHNQcm92aWRlcikKQEAgLTYxMSw2ICs2MTcsNjUgQEAgcHJp
dmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKKyNpZiBQTEFURk9STShJT1MpCitAaW1w
bGVtZW50YXRpb24gV2ViVUlUZXh0SW5kaWNhdG9yRGF0YQorCitAc3ludGhlc2l6ZSBkYXRhSW50
ZXJhY3Rpb25JbWFnZT1fZGF0YUludGVyYWN0aW9uSW1hZ2U7CitAc3ludGhlc2l6ZSBzZWxlY3Rp
b25SZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzPV9zZWxlY3Rpb25SZWN0SW5Sb290Vmlld0Nvb3Jk
aW5hdGVzOworQHN5bnRoZXNpemUgdGV4dEJvdW5kaW5nUmVjdEluUm9vdFZpZXdDb29yZGluYXRl
cz1fdGV4dEJvdW5kaW5nUmVjdEluUm9vdFZpZXdDb29yZGluYXRlczsKK0BzeW50aGVzaXplIHRl
eHRSZWN0c0luQm91bmRpbmdSZWN0Q29vcmRpbmF0ZXM9X3RleHRSZWN0c0luQm91bmRpbmdSZWN0
Q29vcmRpbmF0ZXM7CitAc3ludGhlc2l6ZSBjb250ZW50SW1hZ2VXaXRoSGlnaGxpZ2h0PV9jb250
ZW50SW1hZ2VXaXRoSGlnaGxpZ2h0OworQHN5bnRoZXNpemUgY29udGVudEltYWdlPV9jb250ZW50
SW1hZ2U7CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYlVJVGV4dEluZGljYXRvckRhdGEg
KFdlYlVJVGV4dEluZGljYXRvckludGVybmFsKQorCistIChXZWJVSVRleHRJbmRpY2F0b3JEYXRh
ICopaW5pdFdpdGhJbWFnZTooQ0dJbWFnZVJlZilpbWFnZSBUZXh0SW5kaWNhdG9yRGF0YTooV2Vi
Q29yZTo6VGV4dEluZGljYXRvckRhdGEgJilpbmRpY2F0b3JEYXRhIHNjYWxlOihDR0Zsb2F0KXNj
YWxlCit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBu
aWw7CisgICAgCisgICAgX2RhdGFJbnRlcmFjdGlvbkltYWdlID0gW1tnZXRVSUltYWdlQ2xhc3Mo
KSBhbGxvY10gaW5pdFdpdGhDR0ltYWdlOmltYWdlIHNjYWxlOnNjYWxlIG9yaWVudGF0aW9uOlVJ
SW1hZ2VPcmllbnRhdGlvbkRvd25NaXJyb3JlZF07CisgICAgX3NlbGVjdGlvblJlY3RJblJvb3RW
aWV3Q29vcmRpbmF0ZXMgPSBpbmRpY2F0b3JEYXRhLnNlbGVjdGlvblJlY3RJblJvb3RWaWV3Q29v
cmRpbmF0ZXM7CisgICAgX3RleHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMgPSBp
bmRpY2F0b3JEYXRhLnRleHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXM7CisgICAg
CisgICAgTlNNdXRhYmxlQXJyYXkgKnRleHRSZWN0c0luQm91bmRpbmdSZWN0Q29vcmRpbmF0ZXMg
PSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOworICAgIGZvciAoYXV0byByZWN0IDogaW5kaWNhdG9y
RGF0YS50ZXh0UmVjdHNJbkJvdW5kaW5nUmVjdENvb3JkaW5hdGVzKQorICAgICAgICBbdGV4dFJl
Y3RzSW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlcyBhZGRPYmplY3Q6W05TVmFsdWUgdmFsdWVXaXRo
Q0dSZWN0OnJlY3RdXTsKKyAgICBfdGV4dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlcyA9
IFtOU0FycmF5IGFycmF5V2l0aEFycmF5OnRleHRSZWN0c0luQm91bmRpbmdSZWN0Q29vcmRpbmF0
ZXNdOworICAgIF9jb250ZW50SW1hZ2VTY2FsZUZhY3RvciA9IGluZGljYXRvckRhdGEuY29udGVu
dEltYWdlU2NhbGVGYWN0b3I7CisgICAgaWYgKGluZGljYXRvckRhdGEuY29udGVudEltYWdlV2l0
aEhpZ2hsaWdodCkKKyAgICAgICAgX2NvbnRlbnRJbWFnZVdpdGhIaWdobGlnaHQgPSBbW2dldFVJ
SW1hZ2VDbGFzcygpIGFsbG9jXSBpbml0V2l0aENHSW1hZ2U6aW5kaWNhdG9yRGF0YS5jb250ZW50
SW1hZ2VXaXRoSGlnaGxpZ2h0LmdldCgpLT5uYXRpdmVJbWFnZSgpLmdldCgpIHNjYWxlOnNjYWxl
IG9yaWVudGF0aW9uOlVJSW1hZ2VPcmllbnRhdGlvbkRvd25NaXJyb3JlZF07CisgICAgaWYgKGlu
ZGljYXRvckRhdGEuY29udGVudEltYWdlKQorICAgICAgICBfY29udGVudEltYWdlID0gW1tnZXRV
SUltYWdlQ2xhc3MoKSBhbGxvY10gaW5pdFdpdGhDR0ltYWdlOmluZGljYXRvckRhdGEuY29udGVu
dEltYWdlLmdldCgpLT5uYXRpdmVJbWFnZSgpLmdldCgpIHNjYWxlOnNjYWxlIG9yaWVudGF0aW9u
OlVJSW1hZ2VPcmllbnRhdGlvbkRvd25NaXJyb3JlZF07CisgICAgCisgICAgcmV0dXJuIHNlbGY7
Cit9CisKKy0gKFdlYlVJVGV4dEluZGljYXRvckRhdGEgKilpbml0V2l0aEltYWdlOihDR0ltYWdl
UmVmKWltYWdlIHNjYWxlOihDR0Zsb2F0KXNjYWxlCit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBl
ciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgCisgICAgX2RhdGFJbnRlcmFjdGlv
bkltYWdlID0gW1tnZXRVSUltYWdlQ2xhc3MoKSBhbGxvY10gaW5pdFdpdGhDR0ltYWdlOmltYWdl
IHNjYWxlOnNjYWxlIG9yaWVudGF0aW9uOlVJSW1hZ2VPcmllbnRhdGlvbkRvd25NaXJyb3JlZF07
CisgICAgCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpZGVhbGxvYworeworICAgIFtf
ZGF0YUludGVyYWN0aW9uSW1hZ2UgcmVsZWFzZV07CisgICAgW190ZXh0UmVjdHNJbkJvdW5kaW5n
UmVjdENvb3JkaW5hdGVzIHJlbGVhc2VdOworICAgIFtfY29udGVudEltYWdlV2l0aEhpZ2hsaWdo
dCByZWxlYXNlXTsKKyAgICBbX2NvbnRlbnRJbWFnZSByZWxlYXNlXTsKKyAgICAKKyAgICBbc3Vw
ZXIgZGVhbGxvY107Cit9CisKK0BlbmQKKyNlbmRpZgorCiBAaW50ZXJmYWNlIFdlYlZpZXcgKFdl
YkZpbGVJbnRlcm5hbCkKICNpZiAhUExBVEZPUk0oSU9TKQogLSAoZmxvYXQpX2RldmljZVNjYWxl
RmFjdG9yOwpAQCAtMTcxMCw3ICsxNzc1LDM5IEBAIC0gKHZvaWQpdXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlU2gKICAgICAgICAgfQogICAgIH0pOwogfQotI2VuZGlmIC8vIFBMQVRGT1JN
KElPUykKKyNlbmRpZgorCisjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pICYmIGRlZmluZWQo
X19jcGx1c3BsdXMpCistIChCT09MKV9yZXF1ZXN0U3RhcnREYXRhSW50ZXJhY3Rpb246KENHUG9p
bnQpY2xpZW50UG9zaXRpb24gZ2xvYmFsUG9zaXRpb246KENHUG9pbnQpZ2xvYmFsUG9zaXRpb24K
K3sKKyAgICByZXR1cm4gX3ByaXZhdGUtPnBhZ2UtPm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigp
LnRyeVRvQmVnaW5EYXRhSW50ZXJhY3Rpb25BdFBvaW50KEludFBvaW50KGNsaWVudFBvc2l0aW9u
KSwgSW50UG9pbnQoZ2xvYmFsUG9zaXRpb24pKTsKK30KKworLSAodm9pZClfc2V0RGF0YUludGVy
YWN0aW9uRGF0YTooQ0dJbWFnZVJlZilpbWFnZSB0ZXh0SW5kaWNhdG9yOihzdGQ6Om9wdGlvbmFs
PFRleHRJbmRpY2F0b3JEYXRhPilpbmRpY2F0b3JEYXRhIGF0Q2xpZW50UG9zaXRpb246KENHUG9p
bnQpY2xpZW50UG9zaXRpb24gYW5jaG9yUG9pbnQ6KENHUG9pbnQpYW5jaG9yUG9pbnQgYWN0aW9u
Oih1aW50NjRfdClhY3Rpb24KK3sKKyAgICBpZiAoaW5kaWNhdG9yRGF0YSkKKyAgICAgICAgX3By
aXZhdGUtPnRleHRJbmRpY2F0b3JEYXRhID0gW1tXZWJVSVRleHRJbmRpY2F0b3JEYXRhIGFsbG9j
XSBpbml0V2l0aEltYWdlOmltYWdlIFRleHRJbmRpY2F0b3JEYXRhOmluZGljYXRvckRhdGEudmFs
dWUoKSBzY2FsZTpfcHJpdmF0ZS0+cGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKV07CisgICAgZWxz
ZQorICAgICAgICBfcHJpdmF0ZS0+dGV4dEluZGljYXRvckRhdGEgPSBbW1dlYlVJVGV4dEluZGlj
YXRvckRhdGEgYWxsb2NdIGluaXRXaXRoSW1hZ2U6aW1hZ2Ugc2NhbGU6X3ByaXZhdGUtPnBhZ2Ut
PmRldmljZVNjYWxlRmFjdG9yKCldOworfQorCistIChXZWJVSVRleHRJbmRpY2F0b3JEYXRhICop
X2dldERhdGFJbnRlcmFjdGlvbkRhdGEKK3sKKyAgICByZXR1cm4gX3ByaXZhdGUtPnRleHRJbmRp
Y2F0b3JEYXRhOworfQorI2Vsc2UKKy0gKEJPT0wpX3JlcXVlc3RTdGFydERhdGFJbnRlcmFjdGlv
bjooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBnbG9iYWxQb3NpdGlvbjooQ0dQb2ludClnbG9iYWxQ
b3NpdGlvbgoreworICAgIHJldHVybiBOTzsKK30KKy0gKHZvaWQpX3NldERhdGFJbnRlcmFjdGlv
bkRhdGE6KENHSW1hZ2VSZWYpaW1hZ2UgdGV4dEluZGljYXRvcjooVGV4dEluZGljYXRvckRhdGEm
KWluZGljYXRvckRhdGEgYXRDbGllbnRQb3NpdGlvbjooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBh
bmNob3JQb2ludDooQ0dQb2ludClhbmNob3JQb2ludCBhY3Rpb246KHVpbnQ2NF90KWFjdGlvbgor
eworfQorLSAoV2ViVUlUZXh0SW5kaWNhdG9yRGF0YSAqKV9nZXREYXRhSW50ZXJhY3Rpb25EYXRh
Cit7CisgICAgcmV0dXJuIG5pbDsKK30KKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9JTlRFUkFDVElP
TikKIAogc3RhdGljIE5TTXV0YWJsZVNldCAqa25vd25QbHVnaW5NSU1FVHlwZXMoKQogewpJbmRl
eDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAkocmV2aXNpb24gMjEzMDgw
KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCSh3b3JraW5nIGNv
cHkpCkBAIC01NSw2ICs1NSw4IEBAIGNsYXNzIFdlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFF
bGVtZW4KICNlbmRpZgogfQogCitAY2xhc3MgVUlJbWFnZTsKK0BjbGFzcyBXZWJVSVRleHRJbmRp
Y2F0b3JEYXRhOwogQGNsYXNzIFdlYkltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXI7CiBAY2xhc3Mg
V2ViSW5zcGVjdG9yOwogQGNsYXNzIFdlYk5vZGVIaWdobGlnaHQ7CkBAIC0yODIsNiArMjg0LDgg
QEAgQGludGVyZmFjZSBXZWJWaWV3UHJpdmF0ZSA6IE5TT2JqZWN0IHsKICAgICBpbnQzMl90IGRp
ZERyYXdUaWxlczsKICAgICBXVEY6OkxvY2sgcGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0
TXV0ZXg7CiAgICAgQ0dSZWN0IHBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdDsKKyAgICBS
ZXRhaW5QdHI8VUlJbWFnZT4gZGF0YUludGVyYWN0aW9uSW1hZ2U7CisgICAgV2ViVUlUZXh0SW5k
aWNhdG9yRGF0YSAqdGV4dEluZGljYXRvckRhdGE7CiAjZW5kaWYKIAogI2lmICFQTEFURk9STShJ
T1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0JKHJldmlz
aW9uIDIxMzA4MCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0J
KHdvcmtpbmcgY29weSkKQEAgLTIxMiw2ICsyMTIsNyBAQCAtICh2b2lkKWRlYWxsb2MKICAgICBb
Zm9ybURlbGVnYXRlRm9yd2FyZGVyIHJlbGVhc2VdOwogICAgIFtfY2FyZXRDaGFuZ2VMaXN0ZW5l
cnMgcmVsZWFzZV07CiAgICAgW19maXhlZFBvc2l0aW9uQ29udGVudCByZWxlYXNlXTsKKyAgICBb
dGV4dEluZGljYXRvckRhdGEgcmVsZWFzZV07CiAjZW5kaWYKIAogICAgIFtzdXBlciBkZWFsbG9j
XTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAko
cmV2aXNpb24gMjEzMDgwKQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3SW50
ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9IVE1MTWVkaWFFbGVtZW50RW51bXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvTGF5b3V0TWlsZXN0
b25lcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0SW5k
aWNhdG9yV2luZG93Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVLZXlib2FyZFVJTW9kZS5o
PgogI2ltcG9ydCA8ZnVuY3Rpb25hbD4KQEAgLTg5LDYgKzkwLDEzIEBAIFdlYkxheW91dE1pbGVz
dG9uZXMga2l0TGF5b3V0TWlsZXN0b25lcygKIE9CSkNfQ0xBU1MgTlNUZXh0QWx0ZXJuYXRpdmVz
OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikgJiYgZGVmaW5lZChfX2Nw
bHVzcGx1cykKK0BpbnRlcmZhY2UgV2ViVUlUZXh0SW5kaWNhdG9yRGF0YSAoV2ViVUlUZXh0SW5k
aWNhdG9ySW50ZXJuYWwpCistIChXZWJVSVRleHRJbmRpY2F0b3JEYXRhICopaW5pdFdpdGhJbWFn
ZTooQ0dJbWFnZVJlZilpbWFnZSBUZXh0SW5kaWNhdG9yRGF0YTooV2ViQ29yZTo6VGV4dEluZGlj
YXRvckRhdGEmKWluZGljYXRvckRhdGEgc2NhbGU6KENHRmxvYXQpc2NhbGU7CistIChXZWJVSVRl
eHRJbmRpY2F0b3JEYXRhICopaW5pdFdpdGhJbWFnZTooQ0dJbWFnZVJlZilpbWFnZSBzY2FsZToo
Q0dGbG9hdClzY2FsZTsKK0BlbmQKKyNlbmRpZgorCiBAaW50ZXJmYWNlIFdlYlZpZXcgKFdlYlZp
ZXdFZGl0aW5nRXh0cmFzKQogLSAoQk9PTClfc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZToo
RE9NUmFuZ2UgKiljdXJyZW50UmFuZ2UgdG9ET01SYW5nZTooRE9NUmFuZ2UgKilwcm9wb3NlZFJh
bmdlIGFmZmluaXR5OihOU1NlbGVjdGlvbkFmZmluaXR5KXNlbGVjdGlvbkFmZmluaXR5IHN0aWxs
U2VsZWN0aW5nOihCT09MKWZsYWc7CiBAZW5kCkBAIC0yNDgsNiArMjU2LDEwIEBAIEBpbnRlcmZh
Y2UgV2ViVmlldyAoV2ViVmlld090aGVySW50ZXJuYWwKIC0gKEJPT0wpX2ZldGNoQ3VzdG9tRml4
ZWRQb3NpdGlvbkxheW91dFJlY3Q6KE5TUmVjdCopcmVjdDsKICNlbmRpZgogCisjaWYgRU5BQkxF
KERBVEFfSU5URVJBQ1RJT04pICYmIGRlZmluZWQoX19jcGx1c3BsdXMpCistICh2b2lkKV9zZXRE
YXRhSW50ZXJhY3Rpb25EYXRhOihDR0ltYWdlUmVmKWltYWdlIHRleHRJbmRpY2F0b3I6KHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGE+KXRleHRJbmRpY2F0b3IgYXRDbGll
bnRQb3NpdGlvbjooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBhbmNob3JQb2ludDooQ0dQb2ludClh
bmNob3JQb2ludCBhY3Rpb246KHVpbnQ2NF90KWFjdGlvbjsKKyNlbmRpZgorCiAtICh2b2lkKV9w
cmVmZXJlbmNlc0NoYW5nZWQ6KFdlYlByZWZlcmVuY2VzICopcHJlZmVyZW5jZXM7CiAKICNpZiBF
TkFCTEUoVklERU8pICYmIGRlZmluZWQoX19jcGx1c3BsdXMpCkluZGV4OiBTb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oCShyZXZpc2lvbiAyMTMwODApCisrKyBTb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTU1LDYgKzU1LDcgQEAKICNlbmRpZgogI2VuZGlmCiAKK0BjbGFzcyBVSUltYWdlOwogQGNsYXNz
IE5TRXJyb3I7CiBAY2xhc3MgV2ViRnJhbWU7CiBAY2xhc3MgV2ViRGV2aWNlT3JpZW50YXRpb247
CkBAIC0xODAsNiArMTgxLDE5IEBAIHR5cGVkZWYgZW51bSB7CiAgICAgV2ViTm90aWZpY2F0aW9u
UGVybWlzc2lvbkRlbmllZAogfSBXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uOwogCisjaWYgVEFS
R0VUX09TX0lQSE9ORQorQGludGVyZmFjZSBXZWJVSVRleHRJbmRpY2F0b3JEYXRhIDogTlNPYmpl
Y3QKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZXRhaW4pIFVJSW1hZ2UgKmRhdGFJbnRlcmFjdGlv
bkltYWdlOworQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgQ0dSZWN0IHNlbGVjdGlvblJl
Y3RJblJvb3RWaWV3Q29vcmRpbmF0ZXM7CitAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBD
R1JlY3QgdGV4dEJvdW5kaW5nUmVjdEluUm9vdFZpZXdDb29yZGluYXRlczsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZXRhaW4pIE5TQXJyYXk8TlNWYWx1ZSAqPiAqdGV4dFJlY3RzSW5Cb3VuZGlu
Z1JlY3RDb29yZGluYXRlczsgLy8gQ0dSZWN0IHZhbHVlcworQHByb3BlcnR5IChub25hdG9taWMs
IGFzc2lnbikgQ0dGbG9hdCBjb250ZW50SW1hZ2VTY2FsZUZhY3RvcjsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCByZXRhaW4pIFVJSW1hZ2UgKmNvbnRlbnRJbWFnZVdpdGhIaWdobGlnaHQ7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgcmV0YWluKSBVSUltYWdlICpjb250ZW50SW1hZ2U7CisKK0BlbmQK
KyNlbmRpZgorCiAjaWYgIVRBUkdFVF9PU19JUEhPTkUKIEBpbnRlcmZhY2UgV2ViQ29udHJvbGxl
ciA6IE5TVHJlZUNvbnRyb2xsZXIgewogICAgIElCT3V0bGV0IFdlYlZpZXcgKndlYlZpZXc7CkBA
IC00NDksNyArNDYzLDEwIEBAIENvdWxkIGJlIHdvcnRoIGFkZGluZyB0byB0aGUgQVBJLgogKyAo
dm9pZClfcmVsZWFzZU1lbW9yeU5vdzsKIAogLSAodm9pZClfcmVwbGFjZUN1cnJlbnRIaXN0b3J5
SXRlbTooV2ViSGlzdG9yeUl0ZW0gKilpdGVtOwotI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKKyNl
bmRpZiAvLyBUQVJHRVRfT1NfSVBIT05FCisKKy0gKEJPT0wpX3JlcXVlc3RTdGFydERhdGFJbnRl
cmFjdGlvbjooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBnbG9iYWxQb3NpdGlvbjooQ0dQb2ludCln
bG9iYWxQb3NpdGlvbjsKKy0gKFdlYlVJVGV4dEluZGljYXRvckRhdGEgKilfZ2V0RGF0YUludGVy
YWN0aW9uRGF0YTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIC8vIERlcHJlY2F0ZWQuIFVzZSAt
W1dlYkRhdGFTb3VyY2UgX3F1aWNrTG9va0NvbnRlbnRdIGluc3RlYWQuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303154</attachid>
            <date>2017-03-01 18:14:32 -0800</date>
            <delta_ts>2017-03-01 18:45:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169062-20170301181431.patch</filename>
            <type>text/plain</type>
            <size>13704</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMzI1NCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE3LTAzLTAxICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgRGF0YSBpbnRlcmFj
dGlvbiBzdXBwb3J0IGZvciBXSzEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2OTA2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFsbG93IGZvciBzZXBhcmF0ZSBhZGRpdGlvbnMgZmlsZXMgaW4gV0sxIGFu
ZCBXSzIKKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdD
bGllbnRNYWMubW06CisKIDIwMTctMDMtMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBbV0syXVshTkVUV09SS19TRVNTSU9OXSBGYWlsdXJlIHRvIGRvd25sb2Fk
IHdoZW4gdXNpbmcgYSBkb3dubG9hZCBhdHRyaWJ1dGUgd2l0aCBubyB2YWx1ZSBvbiBhbiBhbmNo
b3IKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dl
YkRyYWdDbGllbnRNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQkocmV2aXNpb24gMjEzMjU0
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJh
Z0NsaWVudE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTEsOCArNTEsOCBAQAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi0jaWYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykgJiYgX19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRpb25zL1dlYkRyYWdD
bGllbnRBZGRpdGlvbnMubW0+KQotI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dlYkRyYWdDbGll
bnRBZGRpdGlvbnMubW0+CisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgX19oYXNfaW5j
bHVkZSg8V2ViS2l0QWRkaXRpb25zL1dlYkRyYWdDbGllbnRBZGRpdGlvbnNXZWJLaXQyLm1tPikK
KyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJEcmFnQ2xpZW50QWRkaXRpb25zV2ViS2l0Mi5t
bT4KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQpJbmRleDogU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2
aXNpb24gMjEzMjU0KQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTctMDMtMDEgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9n
YXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBEYXRhIGludGVyYWN0aW9uIHN1cHBvcnQgZm9y
IFdLMQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5
MDYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3Vw
cG9ydCBmb3IgZGF0YSBpbnRlcmFjdGlvbiBpbiBXZWJLaXQxCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToK
KyAgICAgICAgKC1bV2ViVUlUZXh0SW5kaWNhdG9yRGF0YSBpbml0V2l0aEltYWdlOlRleHRJbmRp
Y2F0b3JEYXRhOnNjYWxlOl0pOgorICAgICAgICAoLVtXZWJVSVRleHRJbmRpY2F0b3JEYXRhIGlu
aXRXaXRoSW1hZ2U6c2NhbGU6XSk6CisgICAgICAgICgtW1dlYlVJVGV4dEluZGljYXRvckRhdGEg
ZGVhbGxvY10pOgorICAgICAgICAoLVtXZWJWaWV3IF9yZXF1ZXN0U3RhcnREYXRhSW50ZXJhY3Rp
b246Z2xvYmFsUG9zaXRpb246XSk6CisgICAgICAgICgtW1dlYlZpZXcgX3NldERhdGFJbnRlcmFj
dGlvbkRhdGE6dGV4dEluZGljYXRvcjphdENsaWVudFBvc2l0aW9uOmFuY2hvclBvaW50OmFjdGlv
bjpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfZ2V0RGF0YUludGVyYWN0aW9uRGF0YV0pOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViVmlld0RhdGEuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdE
YXRhLm1tOgorICAgICAgICAoLVtXZWJWaWV3UHJpdmF0ZSBkZWFsbG9jXSk6CisgICAgICAgICog
V2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdQcml2
YXRlLmg6CisKIDIwMTctMDItMjcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBCZWdpbiBlbmFibGluZyBXZWJSVEMgb24gNjQtYml0CkluZGV4
OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQu
bW0JKHJldmlzaW9uIDIxMzI1NCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkRyYWdDbGllbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTU5LDYgKzU5LDEwIEBACiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYg
X19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRpb25zL1dlYkRyYWdDbGllbnRBZGRpdGlvbnNXZWJL
aXQxLm1tPikKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJEcmFnQ2xpZW50QWRkaXRpb25z
V2ViS2l0MS5tbT4KKyNlbmRpZgorCiBXZWJEcmFnQ2xpZW50OjpXZWJEcmFnQ2xpZW50KFdlYlZp
ZXcqIHdlYlZpZXcpCiAgICAgOiBtX3dlYlZpZXcod2ViVmlldykgCiB7CkBAIC0xOTgsMTEgKzIw
MiwxMSBAQCBXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uIFdlYkRyYWdDbGllbnQ6CiB2b2lkIFdl
YkRyYWdDbGllbnQ6OndpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihXZWJDb3JlOjpEcmFnU291
cmNlQWN0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIFdlYkNvcmU6OkRhdGFUcmFuc2Zl
ciYpCiB7CiB9Ci0KKyNpZiAhRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiB2b2lkIFdlYkRyYWdD
bGllbnQ6OnN0YXJ0RHJhZyhXZWJDb3JlOjpEcmFnSW1hZ2UsIGNvbnN0IEludFBvaW50JiwgY29u
c3QgSW50UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50JiwgRGF0YVRyYW5zZmVyJiwgRnJhbWUmLCBX
ZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uKQogewogfQotCisjZW5kaWYKIHZvaWQgV2ViRHJhZ0Ns
aWVudDo6YmVnaW5EcmFnKERyYWdJdGVtLCBGcmFtZSYsIGNvbnN0IEludFBvaW50JiwgY29uc3Qg
SW50UG9pbnQmLCBEYXRhVHJhbnNmZXImLCBEcmFnU291cmNlQWN0aW9uKQogewogfQpJbmRleDog
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkocmV2aXNpb24gMjEzMjU0KQorKysgU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xOTAs
NiArMTkwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvU2VjdXJpdHlQb2xpY3kuaD4KICNpbXBvcnQg
PFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU29ja2V0UHJvdmlkZXIuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3R5bGVQ
cm9wZXJ0aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRSZXNvdXJjZURlY29kZXIuaD4KICNp
bXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KQEAgLTIzOCw3ICsyMzksNiBAQAogI2ltcG9y
dCA8V2ViQ29yZS9BVktpdFNQSS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb29rdXBTUEkuaD4KICNp
bXBvcnQgPFdlYkNvcmUvTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplclNQSS5oPgot
I2ltcG9ydCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0SW5k
aWNhdG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KICNpbXBv
cnQgPFdlYkNvcmUvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5oPgpAQCAtMzE5LDYgKzMx
OSwxMiBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxl
bWVudC5oPgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKKyNpbXBvcnQg
PFVJS2l0L1VJSW1hZ2UuaD4KK1NPRlRfTElOS19GUkFNRVdPUksoVUlLaXQpCitTT0ZUX0xJTktf
Q0xBU1MoVUlLaXQsIFVJSW1hZ2UpCisjZW5kaWYKKwogI2lmIEhBVkUoVE9VQ0hfQkFSKSAmJiBF
TkFCTEUoV0VCX1BMQVlCQUNLX0NPTlRST0xTX01BTkFHRVIpCiBTT0ZUX0xJTktfRlJBTUVXT1JL
KEFWS2l0KQogU09GVF9MSU5LX0NMQVNTKEFWS2l0LCBBVkZ1bmN0aW9uQmFyUGxheWJhY2tDb250
cm9sc1Byb3ZpZGVyKQpAQCAtNjExLDYgKzYxNyw2NSBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAorI2lmIFBMQVRGT1JNKElPUykKK0BpbXBsZW1lbnRhdGlvbiBXZWJVSVRl
eHRJbmRpY2F0b3JEYXRhCisKK0BzeW50aGVzaXplIGRhdGFJbnRlcmFjdGlvbkltYWdlPV9kYXRh
SW50ZXJhY3Rpb25JbWFnZTsKK0BzeW50aGVzaXplIHNlbGVjdGlvblJlY3RJblJvb3RWaWV3Q29v
cmRpbmF0ZXM9X3NlbGVjdGlvblJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXM7CitAc3ludGhlc2l6
ZSB0ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzPV90ZXh0Qm91bmRpbmdSZWN0
SW5Sb290Vmlld0Nvb3JkaW5hdGVzOworQHN5bnRoZXNpemUgdGV4dFJlY3RzSW5Cb3VuZGluZ1Jl
Y3RDb29yZGluYXRlcz1fdGV4dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlczsKK0BzeW50
aGVzaXplIGNvbnRlbnRJbWFnZVdpdGhIaWdobGlnaHQ9X2NvbnRlbnRJbWFnZVdpdGhIaWdobGln
aHQ7CitAc3ludGhlc2l6ZSBjb250ZW50SW1hZ2U9X2NvbnRlbnRJbWFnZTsKKworQGVuZAorCitA
aW1wbGVtZW50YXRpb24gV2ViVUlUZXh0SW5kaWNhdG9yRGF0YSAoV2ViVUlUZXh0SW5kaWNhdG9y
SW50ZXJuYWwpCisKKy0gKFdlYlVJVGV4dEluZGljYXRvckRhdGEgKilpbml0V2l0aEltYWdlOihD
R0ltYWdlUmVmKWltYWdlIFRleHRJbmRpY2F0b3JEYXRhOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
RGF0YSAmKWluZGljYXRvckRhdGEgc2NhbGU6KENHRmxvYXQpc2NhbGUKK3sKKyAgICBpZiAoIShz
ZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICAKKyAgICBfZGF0
YUludGVyYWN0aW9uSW1hZ2UgPSBbW2dldFVJSW1hZ2VDbGFzcygpIGFsbG9jXSBpbml0V2l0aENH
SW1hZ2U6aW1hZ2Ugc2NhbGU6c2NhbGUgb3JpZW50YXRpb246VUlJbWFnZU9yaWVudGF0aW9uRG93
bk1pcnJvcmVkXTsKKyAgICBfc2VsZWN0aW9uUmVjdEluUm9vdFZpZXdDb29yZGluYXRlcyA9IGlu
ZGljYXRvckRhdGEuc2VsZWN0aW9uUmVjdEluUm9vdFZpZXdDb29yZGluYXRlczsKKyAgICBfdGV4
dEJvdW5kaW5nUmVjdEluUm9vdFZpZXdDb29yZGluYXRlcyA9IGluZGljYXRvckRhdGEudGV4dEJv
dW5kaW5nUmVjdEluUm9vdFZpZXdDb29yZGluYXRlczsKKyAgICAKKyAgICBOU011dGFibGVBcnJh
eSAqdGV4dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlcyA9IFtOU011dGFibGVBcnJheSBh
cnJheV07CisgICAgZm9yIChhdXRvIHJlY3QgOiBpbmRpY2F0b3JEYXRhLnRleHRSZWN0c0luQm91
bmRpbmdSZWN0Q29vcmRpbmF0ZXMpCisgICAgICAgIFt0ZXh0UmVjdHNJbkJvdW5kaW5nUmVjdENv
b3JkaW5hdGVzIGFkZE9iamVjdDpbTlNWYWx1ZSB2YWx1ZVdpdGhDR1JlY3Q6cmVjdF1dOworICAg
IF90ZXh0UmVjdHNJbkJvdW5kaW5nUmVjdENvb3JkaW5hdGVzID0gW05TQXJyYXkgYXJyYXlXaXRo
QXJyYXk6dGV4dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlc107CisgICAgX2NvbnRlbnRJ
bWFnZVNjYWxlRmFjdG9yID0gaW5kaWNhdG9yRGF0YS5jb250ZW50SW1hZ2VTY2FsZUZhY3RvcjsK
KyAgICBpZiAoaW5kaWNhdG9yRGF0YS5jb250ZW50SW1hZ2VXaXRoSGlnaGxpZ2h0KQorICAgICAg
ICBfY29udGVudEltYWdlV2l0aEhpZ2hsaWdodCA9IFtbZ2V0VUlJbWFnZUNsYXNzKCkgYWxsb2Nd
IGluaXRXaXRoQ0dJbWFnZTppbmRpY2F0b3JEYXRhLmNvbnRlbnRJbWFnZVdpdGhIaWdobGlnaHQu
Z2V0KCktPm5hdGl2ZUltYWdlKCkuZ2V0KCkgc2NhbGU6c2NhbGUgb3JpZW50YXRpb246VUlJbWFn
ZU9yaWVudGF0aW9uRG93bk1pcnJvcmVkXTsKKyAgICBpZiAoaW5kaWNhdG9yRGF0YS5jb250ZW50
SW1hZ2UpCisgICAgICAgIF9jb250ZW50SW1hZ2UgPSBbW2dldFVJSW1hZ2VDbGFzcygpIGFsbG9j
XSBpbml0V2l0aENHSW1hZ2U6aW5kaWNhdG9yRGF0YS5jb250ZW50SW1hZ2UuZ2V0KCktPm5hdGl2
ZUltYWdlKCkuZ2V0KCkgc2NhbGU6c2NhbGUgb3JpZW50YXRpb246VUlJbWFnZU9yaWVudGF0aW9u
RG93bk1pcnJvcmVkXTsKKyAgICAKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAoV2ViVUlUZXh0
SW5kaWNhdG9yRGF0YSAqKWluaXRXaXRoSW1hZ2U6KENHSW1hZ2VSZWYpaW1hZ2Ugc2NhbGU6KENH
RmxvYXQpc2NhbGUKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAg
cmV0dXJuIG5pbDsKKyAgICAKKyAgICBfZGF0YUludGVyYWN0aW9uSW1hZ2UgPSBbW2dldFVJSW1h
Z2VDbGFzcygpIGFsbG9jXSBpbml0V2l0aENHSW1hZ2U6aW1hZ2Ugc2NhbGU6c2NhbGUgb3JpZW50
YXRpb246VUlJbWFnZU9yaWVudGF0aW9uRG93bk1pcnJvcmVkXTsKKyAgICAKKyAgICByZXR1cm4g
c2VsZjsKK30KKworLSAodm9pZClkZWFsbG9jCit7CisgICAgW19kYXRhSW50ZXJhY3Rpb25JbWFn
ZSByZWxlYXNlXTsKKyAgICBbX3RleHRSZWN0c0luQm91bmRpbmdSZWN0Q29vcmRpbmF0ZXMgcmVs
ZWFzZV07CisgICAgW19jb250ZW50SW1hZ2VXaXRoSGlnaGxpZ2h0IHJlbGVhc2VdOworICAgIFtf
Y29udGVudEltYWdlIHJlbGVhc2VdOworICAgIAorICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKwor
QGVuZAorI2VuZGlmCisKIEBpbnRlcmZhY2UgV2ViVmlldyAoV2ViRmlsZUludGVybmFsKQogI2lm
ICFQTEFURk9STShJT1MpCiAtIChmbG9hdClfZGV2aWNlU2NhbGVGYWN0b3I7CkBAIC0xNzEwLDcg
KzE3NzUsMzkgQEAgLSAodm9pZCl1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVTaAogICAg
ICAgICB9CiAgICAgfSk7CiB9Ci0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorI2VuZGlmCisKKyNp
ZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikgJiYgZGVmaW5lZChfX2NwbHVzcGx1cykKKy0gKEJP
T0wpX3JlcXVlc3RTdGFydERhdGFJbnRlcmFjdGlvbjooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBn
bG9iYWxQb3NpdGlvbjooQ0dQb2ludClnbG9iYWxQb3NpdGlvbgoreworICAgIHJldHVybiBfcHJp
dmF0ZS0+cGFnZS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkudHJ5VG9CZWdpbkRhdGFJbnRl
cmFjdGlvbkF0UG9pbnQoSW50UG9pbnQoY2xpZW50UG9zaXRpb24pLCBJbnRQb2ludChnbG9iYWxQ
b3NpdGlvbikpOworfQorCistICh2b2lkKV9zZXREYXRhSW50ZXJhY3Rpb25EYXRhOihDR0ltYWdl
UmVmKWltYWdlIHRleHRJbmRpY2F0b3I6KHN0ZDo6b3B0aW9uYWw8VGV4dEluZGljYXRvckRhdGE+
KWluZGljYXRvckRhdGEgYXRDbGllbnRQb3NpdGlvbjooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBh
bmNob3JQb2ludDooQ0dQb2ludClhbmNob3JQb2ludCBhY3Rpb246KHVpbnQ2NF90KWFjdGlvbgor
eworICAgIGlmIChpbmRpY2F0b3JEYXRhKQorICAgICAgICBfcHJpdmF0ZS0+dGV4dEluZGljYXRv
ckRhdGEgPSBbW1dlYlVJVGV4dEluZGljYXRvckRhdGEgYWxsb2NdIGluaXRXaXRoSW1hZ2U6aW1h
Z2UgVGV4dEluZGljYXRvckRhdGE6aW5kaWNhdG9yRGF0YS52YWx1ZSgpIHNjYWxlOl9wcml2YXRl
LT5wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpXTsKKyAgICBlbHNlCisgICAgICAgIF9wcml2YXRl
LT50ZXh0SW5kaWNhdG9yRGF0YSA9IFtbV2ViVUlUZXh0SW5kaWNhdG9yRGF0YSBhbGxvY10gaW5p
dFdpdGhJbWFnZTppbWFnZSBzY2FsZTpfcHJpdmF0ZS0+cGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3Io
KV07Cit9CisKKy0gKFdlYlVJVGV4dEluZGljYXRvckRhdGEgKilfZ2V0RGF0YUludGVyYWN0aW9u
RGF0YQoreworICAgIHJldHVybiBfcHJpdmF0ZS0+dGV4dEluZGljYXRvckRhdGE7Cit9CisjZWxz
ZQorLSAoQk9PTClfcmVxdWVzdFN0YXJ0RGF0YUludGVyYWN0aW9uOihDR1BvaW50KWNsaWVudFBv
c2l0aW9uIGdsb2JhbFBvc2l0aW9uOihDR1BvaW50KWdsb2JhbFBvc2l0aW9uCit7CisgICAgcmV0
dXJuIE5POworfQorLSAodm9pZClfc2V0RGF0YUludGVyYWN0aW9uRGF0YTooQ0dJbWFnZVJlZilp
bWFnZSB0ZXh0SW5kaWNhdG9yOihUZXh0SW5kaWNhdG9yRGF0YSYpaW5kaWNhdG9yRGF0YSBhdENs
aWVudFBvc2l0aW9uOihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGFuY2hvclBvaW50OihDR1BvaW50
KWFuY2hvclBvaW50IGFjdGlvbjoodWludDY0X3QpYWN0aW9uCit7Cit9CistIChXZWJVSVRleHRJ
bmRpY2F0b3JEYXRhICopX2dldERhdGFJbnRlcmFjdGlvbkRhdGEKK3sKKyAgICByZXR1cm4gbmls
OworfQorI2VuZGlmIC8vIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogCiBzdGF0aWMgTlNNdXRh
YmxlU2V0ICprbm93blBsdWdpbk1JTUVUeXBlcygpCiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3RGF0YS5oCShyZXZpc2lvbiAyMTMyNTQpCisrKyBTb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDYgKzU1LDgg
QEAgY2xhc3MgV2ViUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbgogI2VuZGlmCiB9CiAK
K0BjbGFzcyBVSUltYWdlOworQGNsYXNzIFdlYlVJVGV4dEluZGljYXRvckRhdGE7CiBAY2xhc3Mg
V2ViSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlcjsKIEBjbGFzcyBXZWJJbnNwZWN0b3I7CiBAY2xh
c3MgV2ViTm9kZUhpZ2hsaWdodDsKQEAgLTI4Miw2ICsyODQsOCBAQCBAaW50ZXJmYWNlIFdlYlZp
ZXdQcml2YXRlIDogTlNPYmplY3QgewogICAgIGludDMyX3QgZGlkRHJhd1RpbGVzOwogICAgIFdU
Rjo6TG9jayBwZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3RNdXRleDsKICAgICBDR1JlY3Qg
cGVuZGluZ0ZpeGVkUG9zaXRpb25MYXlvdXRSZWN0OworICAgIFJldGFpblB0cjxVSUltYWdlPiBk
YXRhSW50ZXJhY3Rpb25JbWFnZTsKKyAgICBXZWJVSVRleHRJbmRpY2F0b3JEYXRhICp0ZXh0SW5k
aWNhdG9yRGF0YTsKICNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKElPUykKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQkocmV2aXNpb24gMjEzMjU0KQorKysgU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQkod29ya2luZyBjb3B5KQpAQCAt
MjEyLDYgKzIxMiw3IEBAIC0gKHZvaWQpZGVhbGxvYwogICAgIFtmb3JtRGVsZWdhdGVGb3J3YXJk
ZXIgcmVsZWFzZV07CiAgICAgW19jYXJldENoYW5nZUxpc3RlbmVycyByZWxlYXNlXTsKICAgICBb
X2ZpeGVkUG9zaXRpb25Db250ZW50IHJlbGVhc2VdOworICAgIFt0ZXh0SW5kaWNhdG9yRGF0YSBy
ZWxlYXNlXTsKICNlbmRpZgogCiAgICAgW3N1cGVyIGRlYWxsb2NdOwpJbmRleDogU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCShyZXZpc2lvbiAyMTMyNTQpCisr
KyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCSh3b3JraW5nIGNv
cHkpCkBAIC00MCw2ICs0MCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnRF
bnVtcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9MYXlvdXRNaWxlc3RvbmVzLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1RleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9UZXh0
SW5kaWNhdG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KICNp
bXBvcnQgPFdlYkNvcmUvV2ViQ29yZUtleWJvYXJkVUlNb2RlLmg+CiAjaW1wb3J0IDxmdW5jdGlv
bmFsPgpAQCAtODksNiArOTAsMTMgQEAgV2ViTGF5b3V0TWlsZXN0b25lcyBraXRMYXlvdXRNaWxl
c3RvbmVzKAogT0JKQ19DTEFTUyBOU1RleHRBbHRlcm5hdGl2ZXM7CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShEQVRBX0lOVEVSQUNUSU9OKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorQGludGVyZmFj
ZSBXZWJVSVRleHRJbmRpY2F0b3JEYXRhIChXZWJVSVRleHRJbmRpY2F0b3JJbnRlcm5hbCkKKy0g
KFdlYlVJVGV4dEluZGljYXRvckRhdGEgKilpbml0V2l0aEltYWdlOihDR0ltYWdlUmVmKWltYWdl
IFRleHRJbmRpY2F0b3JEYXRhOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYpaW5kaWNhdG9y
RGF0YSBzY2FsZTooQ0dGbG9hdClzY2FsZTsKKy0gKFdlYlVJVGV4dEluZGljYXRvckRhdGEgKilp
bml0V2l0aEltYWdlOihDR0ltYWdlUmVmKWltYWdlIHNjYWxlOihDR0Zsb2F0KXNjYWxlOworQGVu
ZAorI2VuZGlmCisKIEBpbnRlcmZhY2UgV2ViVmlldyAoV2ViVmlld0VkaXRpbmdFeHRyYXMpCiAt
IChCT09MKV9zaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOihET01SYW5nZSAqKWN1cnJlbnRS
YW5nZSB0b0RPTVJhbmdlOihET01SYW5nZSAqKXByb3Bvc2VkUmFuZ2UgYWZmaW5pdHk6KE5TU2Vs
ZWN0aW9uQWZmaW5pdHkpc2VsZWN0aW9uQWZmaW5pdHkgc3RpbGxTZWxlY3Rpbmc6KEJPT0wpZmxh
ZzsKIEBlbmQKQEAgLTI0OCw2ICsyNTYsMTAgQEAgQGludGVyZmFjZSBXZWJWaWV3IChXZWJWaWV3
T3RoZXJJbnRlcm5hbAogLSAoQk9PTClfZmV0Y2hDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVj
dDooTlNSZWN0KilyZWN0OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikg
JiYgZGVmaW5lZChfX2NwbHVzcGx1cykKKy0gKHZvaWQpX3NldERhdGFJbnRlcmFjdGlvbkRhdGE6
KENHSW1hZ2VSZWYpaW1hZ2UgdGV4dEluZGljYXRvcjooc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yRGF0YT4pdGV4dEluZGljYXRvciBhdENsaWVudFBvc2l0aW9uOihDR1BvaW50
KWNsaWVudFBvc2l0aW9uIGFuY2hvclBvaW50OihDR1BvaW50KWFuY2hvclBvaW50IGFjdGlvbjoo
dWludDY0X3QpYWN0aW9uOworI2VuZGlmCisKIC0gKHZvaWQpX3ByZWZlcmVuY2VzQ2hhbmdlZDoo
V2ViUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlczsKIAogI2lmIEVOQUJMRShWSURFTykgJiYgZGVm
aW5lZChfX2NwbHVzcGx1cykKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
d1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXdQcml2YXRlLmgJKHJldmlzaW9uIDIxMzI1NCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlld1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUsNyBAQAogI2Vu
ZGlmCiAjZW5kaWYKIAorQGNsYXNzIFVJSW1hZ2U7CiBAY2xhc3MgTlNFcnJvcjsKIEBjbGFzcyBX
ZWJGcmFtZTsKIEBjbGFzcyBXZWJEZXZpY2VPcmllbnRhdGlvbjsKQEAgLTE4MCw2ICsxODEsMTkg
QEAgdHlwZWRlZiBlbnVtIHsKICAgICBXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVuaWVkCiB9
IFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb247CiAKKyNpZiBUQVJHRVRfT1NfSVBIT05FCitAaW50
ZXJmYWNlIFdlYlVJVGV4dEluZGljYXRvckRhdGEgOiBOU09iamVjdAorQHByb3BlcnR5IChub25h
dG9taWMsIHJldGFpbikgVUlJbWFnZSAqZGF0YUludGVyYWN0aW9uSW1hZ2U7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgYXNzaWduKSBDR1JlY3Qgc2VsZWN0aW9uUmVjdEluUm9vdFZpZXdDb29yZGlu
YXRlczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIENHUmVjdCB0ZXh0Qm91bmRpbmdS
ZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzOworQHByb3BlcnR5IChub25hdG9taWMsIHJldGFpbikg
TlNBcnJheTxOU1ZhbHVlICo+ICp0ZXh0UmVjdHNJbkJvdW5kaW5nUmVjdENvb3JkaW5hdGVzOyAv
LyBDR1JlY3QgdmFsdWVzCitAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBDR0Zsb2F0IGNv
bnRlbnRJbWFnZVNjYWxlRmFjdG9yOworQHByb3BlcnR5IChub25hdG9taWMsIHJldGFpbikgVUlJ
bWFnZSAqY29udGVudEltYWdlV2l0aEhpZ2hsaWdodDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZXRhaW4pIFVJSW1hZ2UgKmNvbnRlbnRJbWFnZTsKKworQGVuZAorI2VuZGlmCisKICNpZiAhVEFS
R0VUX09TX0lQSE9ORQogQGludGVyZmFjZSBXZWJDb250cm9sbGVyIDogTlNUcmVlQ29udHJvbGxl
ciB7CiAgICAgSUJPdXRsZXQgV2ViVmlldyAqd2ViVmlldzsKQEAgLTQ0OSw3ICs0NjMsMTAgQEAg
Q291bGQgYmUgd29ydGggYWRkaW5nIHRvIHRoZSBBUEkuCiArICh2b2lkKV9yZWxlYXNlTWVtb3J5
Tm93OwogCiAtICh2b2lkKV9yZXBsYWNlQ3VycmVudEhpc3RvcnlJdGVtOihXZWJIaXN0b3J5SXRl
bSAqKWl0ZW07Ci0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorI2VuZGlmIC8vIFRBUkdFVF9PU19J
UEhPTkUKKworLSAoQk9PTClfcmVxdWVzdFN0YXJ0RGF0YUludGVyYWN0aW9uOihDR1BvaW50KWNs
aWVudFBvc2l0aW9uIGdsb2JhbFBvc2l0aW9uOihDR1BvaW50KWdsb2JhbFBvc2l0aW9uOworLSAo
V2ViVUlUZXh0SW5kaWNhdG9yRGF0YSAqKV9nZXREYXRhSW50ZXJhY3Rpb25EYXRhOwogCiAjaWYg
VEFSR0VUX09TX0lQSE9ORQogLy8gRGVwcmVjYXRlZC4gVXNlIC1bV2ViRGF0YVNvdXJjZSBfcXVp
Y2tMb29rQ29udGVudF0gaW5zdGVhZC4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303155</attachid>
            <date>2017-03-01 18:45:30 -0800</date>
            <delta_ts>2017-03-01 19:24:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169062-20170301184529.patch</filename>
            <type>text/plain</type>
            <size>13713</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMzI1NCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE3LTAzLTAxICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgRGF0YSBpbnRlcmFj
dGlvbiBzdXBwb3J0IGZvciBXSzEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2OTA2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFsbG93IGZvciBzZXBhcmF0ZSBhZGRpdGlvbnMgZmlsZXMgaW4gV0sxIGFu
ZCBXSzIKKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdD
bGllbnRNYWMubW06CisKIDIwMTctMDMtMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBbV0syXVshTkVUV09SS19TRVNTSU9OXSBGYWlsdXJlIHRvIGRvd25sb2Fk
IHdoZW4gdXNpbmcgYSBkb3dubG9hZCBhdHRyaWJ1dGUgd2l0aCBubyB2YWx1ZSBvbiBhbiBhbmNo
b3IKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dl
YkRyYWdDbGllbnRNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJhZ0NsaWVudE1hYy5tbQkocmV2aXNpb24gMjEzMjU0
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRHJh
Z0NsaWVudE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTEsOCArNTEsOCBAQAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi0jaWYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykgJiYgX19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRpb25zL1dlYkRyYWdD
bGllbnRBZGRpdGlvbnMubW0+KQotI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dlYkRyYWdDbGll
bnRBZGRpdGlvbnMubW0+CisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgX19oYXNfaW5j
bHVkZSg8V2ViS2l0QWRkaXRpb25zL1dlYkRyYWdDbGllbnRBZGRpdGlvbnNXZWJLaXQyLm1tPikK
KyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJEcmFnQ2xpZW50QWRkaXRpb25zV2ViS2l0Mi5t
bT4KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQpJbmRleDogU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2
aXNpb24gMjEzMjU0KQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTctMDMtMDEgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9n
YXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBEYXRhIGludGVyYWN0aW9uIHN1cHBvcnQgZm9y
IFdLMQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5
MDYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3Vw
cG9ydCBmb3IgZGF0YSBpbnRlcmFjdGlvbiBpbiBXZWJLaXQxCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToK
KyAgICAgICAgKC1bV2ViVUlUZXh0SW5kaWNhdG9yRGF0YSBpbml0V2l0aEltYWdlOlRleHRJbmRp
Y2F0b3JEYXRhOnNjYWxlOl0pOgorICAgICAgICAoLVtXZWJVSVRleHRJbmRpY2F0b3JEYXRhIGlu
aXRXaXRoSW1hZ2U6c2NhbGU6XSk6CisgICAgICAgICgtW1dlYlVJVGV4dEluZGljYXRvckRhdGEg
ZGVhbGxvY10pOgorICAgICAgICAoLVtXZWJWaWV3IF9yZXF1ZXN0U3RhcnREYXRhSW50ZXJhY3Rp
b246Z2xvYmFsUG9zaXRpb246XSk6CisgICAgICAgICgtW1dlYlZpZXcgX3NldERhdGFJbnRlcmFj
dGlvbkRhdGE6dGV4dEluZGljYXRvcjphdENsaWVudFBvc2l0aW9uOmFuY2hvclBvaW50OmFjdGlv
bjpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfZ2V0RGF0YUludGVyYWN0aW9uRGF0YV0pOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViVmlld0RhdGEuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdE
YXRhLm1tOgorICAgICAgICAoLVtXZWJWaWV3UHJpdmF0ZSBkZWFsbG9jXSk6CisgICAgICAgICog
V2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdQcml2
YXRlLmg6CisKIDIwMTctMDItMjcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBCZWdpbiBlbmFibGluZyBXZWJSVEMgb24gNjQtYml0CkluZGV4
OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQu
bW0JKHJldmlzaW9uIDIxMzI1NCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkRyYWdDbGllbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTU5LDYgKzU5LDEwIEBACiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYg
X19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRpb25zL1dlYkRyYWdDbGllbnRBZGRpdGlvbnNXZWJL
aXQxLm1tPikKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJEcmFnQ2xpZW50QWRkaXRpb25z
V2ViS2l0MS5tbT4KKyNlbmRpZgorCiBXZWJEcmFnQ2xpZW50OjpXZWJEcmFnQ2xpZW50KFdlYlZp
ZXcqIHdlYlZpZXcpCiAgICAgOiBtX3dlYlZpZXcod2ViVmlldykgCiB7CkBAIC0xOTgsMTEgKzIw
MiwxMSBAQCBXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uIFdlYkRyYWdDbGllbnQ6CiB2b2lkIFdl
YkRyYWdDbGllbnQ6OndpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihXZWJDb3JlOjpEcmFnU291
cmNlQWN0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIFdlYkNvcmU6OkRhdGFUcmFuc2Zl
ciYpCiB7CiB9Ci0KKyNpZiAhRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiB2b2lkIFdlYkRyYWdD
bGllbnQ6OnN0YXJ0RHJhZyhXZWJDb3JlOjpEcmFnSW1hZ2UsIGNvbnN0IEludFBvaW50JiwgY29u
c3QgSW50UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50JiwgRGF0YVRyYW5zZmVyJiwgRnJhbWUmLCBX
ZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uKQogewogfQotCisjZW5kaWYKIHZvaWQgV2ViRHJhZ0Ns
aWVudDo6YmVnaW5EcmFnKERyYWdJdGVtLCBGcmFtZSYsIGNvbnN0IEludFBvaW50JiwgY29uc3Qg
SW50UG9pbnQmLCBEYXRhVHJhbnNmZXImLCBEcmFnU291cmNlQWN0aW9uKQogewogfQpJbmRleDog
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkocmV2aXNpb24gMjEzMjU0KQorKysgU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xOTAs
NiArMTkwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvU2VjdXJpdHlQb2xpY3kuaD4KICNpbXBvcnQg
PFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU29ja2V0UHJvdmlkZXIuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3R5bGVQ
cm9wZXJ0aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRSZXNvdXJjZURlY29kZXIuaD4KICNp
bXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KQEAgLTIzOCw3ICsyMzksNiBAQAogI2ltcG9y
dCA8V2ViQ29yZS9BVktpdFNQSS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb29rdXBTUEkuaD4KICNp
bXBvcnQgPFdlYkNvcmUvTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplclNQSS5oPgot
I2ltcG9ydCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0SW5k
aWNhdG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KICNpbXBv
cnQgPFdlYkNvcmUvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5oPgpAQCAtMzE5LDYgKzMx
OSwxMiBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxl
bWVudC5oPgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKKyNpbXBvcnQg
PFVJS2l0L1VJSW1hZ2UuaD4KK1NPRlRfTElOS19GUkFNRVdPUksoVUlLaXQpCitTT0ZUX0xJTktf
Q0xBU1MoVUlLaXQsIFVJSW1hZ2UpCisjZW5kaWYKKwogI2lmIEhBVkUoVE9VQ0hfQkFSKSAmJiBF
TkFCTEUoV0VCX1BMQVlCQUNLX0NPTlRST0xTX01BTkFHRVIpCiBTT0ZUX0xJTktfRlJBTUVXT1JL
KEFWS2l0KQogU09GVF9MSU5LX0NMQVNTKEFWS2l0LCBBVkZ1bmN0aW9uQmFyUGxheWJhY2tDb250
cm9sc1Byb3ZpZGVyKQpAQCAtNjExLDYgKzYxNyw2NSBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAorI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQorQGltcGxlbWVudGF0
aW9uIFdlYlVJVGV4dEluZGljYXRvckRhdGEKKworQHN5bnRoZXNpemUgZGF0YUludGVyYWN0aW9u
SW1hZ2U9X2RhdGFJbnRlcmFjdGlvbkltYWdlOworQHN5bnRoZXNpemUgc2VsZWN0aW9uUmVjdElu
Um9vdFZpZXdDb29yZGluYXRlcz1fc2VsZWN0aW9uUmVjdEluUm9vdFZpZXdDb29yZGluYXRlczsK
K0BzeW50aGVzaXplIHRleHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXM9X3RleHRC
b3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXM7CitAc3ludGhlc2l6ZSB0ZXh0UmVjdHNJ
bkJvdW5kaW5nUmVjdENvb3JkaW5hdGVzPV90ZXh0UmVjdHNJbkJvdW5kaW5nUmVjdENvb3JkaW5h
dGVzOworQHN5bnRoZXNpemUgY29udGVudEltYWdlV2l0aEhpZ2hsaWdodD1fY29udGVudEltYWdl
V2l0aEhpZ2hsaWdodDsKK0BzeW50aGVzaXplIGNvbnRlbnRJbWFnZT1fY29udGVudEltYWdlOwor
CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXZWJVSVRleHRJbmRpY2F0b3JEYXRhIChXZWJVSVRl
eHRJbmRpY2F0b3JJbnRlcm5hbCkKKworLSAoV2ViVUlUZXh0SW5kaWNhdG9yRGF0YSAqKWluaXRX
aXRoSW1hZ2U6KENHSW1hZ2VSZWYpaW1hZ2UgVGV4dEluZGljYXRvckRhdGE6KFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JEYXRhICYpaW5kaWNhdG9yRGF0YSBzY2FsZTooQ0dGbG9hdClzY2FsZQorewor
ICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gbmlsOworICAg
IAorICAgIF9kYXRhSW50ZXJhY3Rpb25JbWFnZSA9IFtbZ2V0VUlJbWFnZUNsYXNzKCkgYWxsb2Nd
IGluaXRXaXRoQ0dJbWFnZTppbWFnZSBzY2FsZTpzY2FsZSBvcmllbnRhdGlvbjpVSUltYWdlT3Jp
ZW50YXRpb25Eb3duTWlycm9yZWRdOworICAgIF9zZWxlY3Rpb25SZWN0SW5Sb290Vmlld0Nvb3Jk
aW5hdGVzID0gaW5kaWNhdG9yRGF0YS5zZWxlY3Rpb25SZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVz
OworICAgIF90ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzID0gaW5kaWNhdG9y
RGF0YS50ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzOworICAgIAorICAgIE5T
TXV0YWJsZUFycmF5ICp0ZXh0UmVjdHNJbkJvdW5kaW5nUmVjdENvb3JkaW5hdGVzID0gW05TTXV0
YWJsZUFycmF5IGFycmF5XTsKKyAgICBmb3IgKGF1dG8gcmVjdCA6IGluZGljYXRvckRhdGEudGV4
dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlcykKKyAgICAgICAgW3RleHRSZWN0c0luQm91
bmRpbmdSZWN0Q29vcmRpbmF0ZXMgYWRkT2JqZWN0OltOU1ZhbHVlIHZhbHVlV2l0aENHUmVjdDpy
ZWN0XV07CisgICAgX3RleHRSZWN0c0luQm91bmRpbmdSZWN0Q29vcmRpbmF0ZXMgPSBbTlNBcnJh
eSBhcnJheVdpdGhBcnJheTp0ZXh0UmVjdHNJbkJvdW5kaW5nUmVjdENvb3JkaW5hdGVzXTsKKyAg
ICBfY29udGVudEltYWdlU2NhbGVGYWN0b3IgPSBpbmRpY2F0b3JEYXRhLmNvbnRlbnRJbWFnZVNj
YWxlRmFjdG9yOworICAgIGlmIChpbmRpY2F0b3JEYXRhLmNvbnRlbnRJbWFnZVdpdGhIaWdobGln
aHQpCisgICAgICAgIF9jb250ZW50SW1hZ2VXaXRoSGlnaGxpZ2h0ID0gW1tnZXRVSUltYWdlQ2xh
c3MoKSBhbGxvY10gaW5pdFdpdGhDR0ltYWdlOmluZGljYXRvckRhdGEuY29udGVudEltYWdlV2l0
aEhpZ2hsaWdodC5nZXQoKS0+bmF0aXZlSW1hZ2UoKS5nZXQoKSBzY2FsZTpzY2FsZSBvcmllbnRh
dGlvbjpVSUltYWdlT3JpZW50YXRpb25Eb3duTWlycm9yZWRdOworICAgIGlmIChpbmRpY2F0b3JE
YXRhLmNvbnRlbnRJbWFnZSkKKyAgICAgICAgX2NvbnRlbnRJbWFnZSA9IFtbZ2V0VUlJbWFnZUNs
YXNzKCkgYWxsb2NdIGluaXRXaXRoQ0dJbWFnZTppbmRpY2F0b3JEYXRhLmNvbnRlbnRJbWFnZS5n
ZXQoKS0+bmF0aXZlSW1hZ2UoKS5nZXQoKSBzY2FsZTpzY2FsZSBvcmllbnRhdGlvbjpVSUltYWdl
T3JpZW50YXRpb25Eb3duTWlycm9yZWRdOworICAgIAorICAgIHJldHVybiBzZWxmOworfQorCist
IChXZWJVSVRleHRJbmRpY2F0b3JEYXRhICopaW5pdFdpdGhJbWFnZTooQ0dJbWFnZVJlZilpbWFn
ZSBzY2FsZTooQ0dGbG9hdClzY2FsZQoreworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0p
KQorICAgICAgICByZXR1cm4gbmlsOworICAgIAorICAgIF9kYXRhSW50ZXJhY3Rpb25JbWFnZSA9
IFtbZ2V0VUlJbWFnZUNsYXNzKCkgYWxsb2NdIGluaXRXaXRoQ0dJbWFnZTppbWFnZSBzY2FsZTpz
Y2FsZSBvcmllbnRhdGlvbjpVSUltYWdlT3JpZW50YXRpb25Eb3duTWlycm9yZWRdOworICAgIAor
ICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBbX2RhdGFJbnRl
cmFjdGlvbkltYWdlIHJlbGVhc2VdOworICAgIFtfdGV4dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29y
ZGluYXRlcyByZWxlYXNlXTsKKyAgICBbX2NvbnRlbnRJbWFnZVdpdGhIaWdobGlnaHQgcmVsZWFz
ZV07CisgICAgW19jb250ZW50SW1hZ2UgcmVsZWFzZV07CisgICAgCisgICAgW3N1cGVyIGRlYWxs
b2NdOworfQorCitAZW5kCisjZW5kaWYgLy8gRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCisKIEBp
bnRlcmZhY2UgV2ViVmlldyAoV2ViRmlsZUludGVybmFsKQogI2lmICFQTEFURk9STShJT1MpCiAt
IChmbG9hdClfZGV2aWNlU2NhbGVGYWN0b3I7CkBAIC0xNzEwLDcgKzE3NzUsMzkgQEAgLSAodm9p
ZCl1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVTaAogICAgICAgICB9CiAgICAgfSk7CiB9
Ci0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorI2VuZGlmCisKKyNpZiBFTkFCTEUoREFUQV9JTlRF
UkFDVElPTikgJiYgZGVmaW5lZChfX2NwbHVzcGx1cykKKy0gKEJPT0wpX3JlcXVlc3RTdGFydERh
dGFJbnRlcmFjdGlvbjooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBnbG9iYWxQb3NpdGlvbjooQ0dQ
b2ludClnbG9iYWxQb3NpdGlvbgoreworICAgIHJldHVybiBfcHJpdmF0ZS0+cGFnZS0+bWFpbkZy
YW1lKCkuZXZlbnRIYW5kbGVyKCkudHJ5VG9CZWdpbkRhdGFJbnRlcmFjdGlvbkF0UG9pbnQoSW50
UG9pbnQoY2xpZW50UG9zaXRpb24pLCBJbnRQb2ludChnbG9iYWxQb3NpdGlvbikpOworfQorCist
ICh2b2lkKV9zZXREYXRhSW50ZXJhY3Rpb25EYXRhOihDR0ltYWdlUmVmKWltYWdlIHRleHRJbmRp
Y2F0b3I6KHN0ZDo6b3B0aW9uYWw8VGV4dEluZGljYXRvckRhdGE+KWluZGljYXRvckRhdGEgYXRD
bGllbnRQb3NpdGlvbjooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBhbmNob3JQb2ludDooQ0dQb2lu
dClhbmNob3JQb2ludCBhY3Rpb246KHVpbnQ2NF90KWFjdGlvbgoreworICAgIGlmIChpbmRpY2F0
b3JEYXRhKQorICAgICAgICBfcHJpdmF0ZS0+dGV4dEluZGljYXRvckRhdGEgPSBbW1dlYlVJVGV4
dEluZGljYXRvckRhdGEgYWxsb2NdIGluaXRXaXRoSW1hZ2U6aW1hZ2UgVGV4dEluZGljYXRvckRh
dGE6aW5kaWNhdG9yRGF0YS52YWx1ZSgpIHNjYWxlOl9wcml2YXRlLT5wYWdlLT5kZXZpY2VTY2Fs
ZUZhY3RvcigpXTsKKyAgICBlbHNlCisgICAgICAgIF9wcml2YXRlLT50ZXh0SW5kaWNhdG9yRGF0
YSA9IFtbV2ViVUlUZXh0SW5kaWNhdG9yRGF0YSBhbGxvY10gaW5pdFdpdGhJbWFnZTppbWFnZSBz
Y2FsZTpfcHJpdmF0ZS0+cGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKV07Cit9CisKKy0gKFdlYlVJ
VGV4dEluZGljYXRvckRhdGEgKilfZ2V0RGF0YUludGVyYWN0aW9uRGF0YQoreworICAgIHJldHVy
biBfcHJpdmF0ZS0+dGV4dEluZGljYXRvckRhdGE7Cit9CisjZWxzZQorLSAoQk9PTClfcmVxdWVz
dFN0YXJ0RGF0YUludGVyYWN0aW9uOihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbFBvc2l0
aW9uOihDR1BvaW50KWdsb2JhbFBvc2l0aW9uCit7CisgICAgcmV0dXJuIE5POworfQorLSAodm9p
ZClfc2V0RGF0YUludGVyYWN0aW9uRGF0YTooQ0dJbWFnZVJlZilpbWFnZSB0ZXh0SW5kaWNhdG9y
OihUZXh0SW5kaWNhdG9yRGF0YSYpaW5kaWNhdG9yRGF0YSBhdENsaWVudFBvc2l0aW9uOihDR1Bv
aW50KWNsaWVudFBvc2l0aW9uIGFuY2hvclBvaW50OihDR1BvaW50KWFuY2hvclBvaW50IGFjdGlv
bjoodWludDY0X3QpYWN0aW9uCit7Cit9CistIChXZWJVSVRleHRJbmRpY2F0b3JEYXRhICopX2dl
dERhdGFJbnRlcmFjdGlvbkRhdGEKK3sKKyAgICByZXR1cm4gbmlsOworfQorI2VuZGlmIC8vIEVO
QUJMRShEQVRBX0lOVEVSQUNUSU9OKQogCiBzdGF0aWMgTlNNdXRhYmxlU2V0ICprbm93blBsdWdp
bk1JTUVUeXBlcygpCiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdE
YXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0
YS5oCShyZXZpc2lvbiAyMTMyNTQpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXdEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDYgKzU1LDggQEAgY2xhc3MgV2ViUGxheWJh
Y2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbgogI2VuZGlmCiB9CiAKK0BjbGFzcyBVSUltYWdlOwor
QGNsYXNzIFdlYlVJVGV4dEluZGljYXRvckRhdGE7CiBAY2xhc3MgV2ViSW1tZWRpYXRlQWN0aW9u
Q29udHJvbGxlcjsKIEBjbGFzcyBXZWJJbnNwZWN0b3I7CiBAY2xhc3MgV2ViTm9kZUhpZ2hsaWdo
dDsKQEAgLTI4Miw2ICsyODQsOCBAQCBAaW50ZXJmYWNlIFdlYlZpZXdQcml2YXRlIDogTlNPYmpl
Y3QgewogICAgIGludDMyX3QgZGlkRHJhd1RpbGVzOwogICAgIFdURjo6TG9jayBwZW5kaW5nRml4
ZWRQb3NpdGlvbkxheW91dFJlY3RNdXRleDsKICAgICBDR1JlY3QgcGVuZGluZ0ZpeGVkUG9zaXRp
b25MYXlvdXRSZWN0OworICAgIFJldGFpblB0cjxVSUltYWdlPiBkYXRhSW50ZXJhY3Rpb25JbWFn
ZTsKKyAgICBXZWJVSVRleHRJbmRpY2F0b3JEYXRhICp0ZXh0SW5kaWNhdG9yRGF0YTsKICNlbmRp
ZgogCiAjaWYgIVBMQVRGT1JNKElPUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlld0RhdGEubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3RGF0YS5tbQkocmV2aXNpb24gMjEzMjU0KQorKysgU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3RGF0YS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjEyLDYgKzIxMiw3IEBAIC0g
KHZvaWQpZGVhbGxvYwogICAgIFtmb3JtRGVsZWdhdGVGb3J3YXJkZXIgcmVsZWFzZV07CiAgICAg
W19jYXJldENoYW5nZUxpc3RlbmVycyByZWxlYXNlXTsKICAgICBbX2ZpeGVkUG9zaXRpb25Db250
ZW50IHJlbGVhc2VdOworICAgIFt0ZXh0SW5kaWNhdG9yRGF0YSByZWxlYXNlXTsKICNlbmRpZgog
CiAgICAgW3N1cGVyIGRlYWxsb2NdOwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3SW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXdJbnRlcm5hbC5oCShyZXZpc2lvbiAyMTMyNTQpCisrKyBTb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw3
IEBACiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnRFbnVtcy5oPgogI2ltcG9ydCA8
V2ViQ29yZS9MYXlvdXRNaWxlc3RvbmVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRBbHRlcm5h
dGl2ZVdpdGhSYW5nZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2Vi
Q29yZUtleWJvYXJkVUlNb2RlLmg+CiAjaW1wb3J0IDxmdW5jdGlvbmFsPgpAQCAtODksNiArOTAs
MTMgQEAgV2ViTGF5b3V0TWlsZXN0b25lcyBraXRMYXlvdXRNaWxlc3RvbmVzKAogT0JKQ19DTEFT
UyBOU1RleHRBbHRlcm5hdGl2ZXM7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNU
SU9OKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorQGludGVyZmFjZSBXZWJVSVRleHRJbmRpY2F0
b3JEYXRhIChXZWJVSVRleHRJbmRpY2F0b3JJbnRlcm5hbCkKKy0gKFdlYlVJVGV4dEluZGljYXRv
ckRhdGEgKilpbml0V2l0aEltYWdlOihDR0ltYWdlUmVmKWltYWdlIFRleHRJbmRpY2F0b3JEYXRh
OihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSYpaW5kaWNhdG9yRGF0YSBzY2FsZTooQ0dGbG9h
dClzY2FsZTsKKy0gKFdlYlVJVGV4dEluZGljYXRvckRhdGEgKilpbml0V2l0aEltYWdlOihDR0lt
YWdlUmVmKWltYWdlIHNjYWxlOihDR0Zsb2F0KXNjYWxlOworQGVuZAorI2VuZGlmCisKIEBpbnRl
cmZhY2UgV2ViVmlldyAoV2ViVmlld0VkaXRpbmdFeHRyYXMpCiAtIChCT09MKV9zaG91bGRDaGFu
Z2VTZWxlY3RlZERPTVJhbmdlOihET01SYW5nZSAqKWN1cnJlbnRSYW5nZSB0b0RPTVJhbmdlOihE
T01SYW5nZSAqKXByb3Bvc2VkUmFuZ2UgYWZmaW5pdHk6KE5TU2VsZWN0aW9uQWZmaW5pdHkpc2Vs
ZWN0aW9uQWZmaW5pdHkgc3RpbGxTZWxlY3Rpbmc6KEJPT0wpZmxhZzsKIEBlbmQKQEAgLTI0OCw2
ICsyNTYsMTAgQEAgQGludGVyZmFjZSBXZWJWaWV3IChXZWJWaWV3T3RoZXJJbnRlcm5hbAogLSAo
Qk9PTClfZmV0Y2hDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdDooTlNSZWN0KilyZWN0Owog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikgJiYgZGVmaW5lZChfX2NwbHVz
cGx1cykKKy0gKHZvaWQpX3NldERhdGFJbnRlcmFjdGlvbkRhdGE6KENHSW1hZ2VSZWYpaW1hZ2Ug
dGV4dEluZGljYXRvcjooc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YT4p
dGV4dEluZGljYXRvciBhdENsaWVudFBvc2l0aW9uOihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGFu
Y2hvclBvaW50OihDR1BvaW50KWFuY2hvclBvaW50IGFjdGlvbjoodWludDY0X3QpYWN0aW9uOwor
I2VuZGlmCisKIC0gKHZvaWQpX3ByZWZlcmVuY2VzQ2hhbmdlZDooV2ViUHJlZmVyZW5jZXMgKilw
cmVmZXJlbmNlczsKIAogI2lmIEVOQUJMRShWSURFTykgJiYgZGVmaW5lZChfX2NwbHVzcGx1cykK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgJKHJldmlz
aW9uIDIxMzI1NCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUu
aAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUsNyBAQAogI2VuZGlmCiAjZW5kaWYKIAorQGNs
YXNzIFVJSW1hZ2U7CiBAY2xhc3MgTlNFcnJvcjsKIEBjbGFzcyBXZWJGcmFtZTsKIEBjbGFzcyBX
ZWJEZXZpY2VPcmllbnRhdGlvbjsKQEAgLTE4MCw2ICsxODEsMTcgQEAgdHlwZWRlZiBlbnVtIHsK
ICAgICBXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVuaWVkCiB9IFdlYk5vdGlmaWNhdGlvblBl
cm1pc3Npb247CiAKK0BpbnRlcmZhY2UgV2ViVUlUZXh0SW5kaWNhdG9yRGF0YSA6IE5TT2JqZWN0
CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmV0YWluKSBVSUltYWdlICpkYXRhSW50ZXJhY3Rpb25J
bWFnZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIENHUmVjdCBzZWxlY3Rpb25SZWN0
SW5Sb290Vmlld0Nvb3JkaW5hdGVzOworQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgQ0dS
ZWN0IHRleHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXM7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgcmV0YWluKSBOU0FycmF5PE5TVmFsdWUgKj4gKnRleHRSZWN0c0luQm91bmRpbmdS
ZWN0Q29vcmRpbmF0ZXM7IC8vIENHUmVjdCB2YWx1ZXMKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBh
c3NpZ24pIENHRmxvYXQgY29udGVudEltYWdlU2NhbGVGYWN0b3I7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgcmV0YWluKSBVSUltYWdlICpjb250ZW50SW1hZ2VXaXRoSGlnaGxpZ2h0OworQHByb3Bl
cnR5IChub25hdG9taWMsIHJldGFpbikgVUlJbWFnZSAqY29udGVudEltYWdlOworCitAZW5kCisK
ICNpZiAhVEFSR0VUX09TX0lQSE9ORQogQGludGVyZmFjZSBXZWJDb250cm9sbGVyIDogTlNUcmVl
Q29udHJvbGxlciB7CiAgICAgSUJPdXRsZXQgV2ViVmlldyAqd2ViVmlldzsKQEAgLTQ0OSw3ICs0
NjEsMTAgQEAgQ291bGQgYmUgd29ydGggYWRkaW5nIHRvIHRoZSBBUEkuCiArICh2b2lkKV9yZWxl
YXNlTWVtb3J5Tm93OwogCiAtICh2b2lkKV9yZXBsYWNlQ3VycmVudEhpc3RvcnlJdGVtOihXZWJI
aXN0b3J5SXRlbSAqKWl0ZW07Ci0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorI2VuZGlmIC8vIFRB
UkdFVF9PU19JUEhPTkUKKworLSAoQk9PTClfcmVxdWVzdFN0YXJ0RGF0YUludGVyYWN0aW9uOihD
R1BvaW50KWNsaWVudFBvc2l0aW9uIGdsb2JhbFBvc2l0aW9uOihDR1BvaW50KWdsb2JhbFBvc2l0
aW9uOworLSAoV2ViVUlUZXh0SW5kaWNhdG9yRGF0YSAqKV9nZXREYXRhSW50ZXJhY3Rpb25EYXRh
OwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogLy8gRGVwcmVjYXRlZC4gVXNlIC1bV2ViRGF0YVNv
dXJjZSBfcXVpY2tMb29rQ29udGVudF0gaW5zdGVhZC4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303161</attachid>
            <date>2017-03-01 19:24:23 -0800</date>
            <delta_ts>2017-03-01 19:28:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169062-20170301192422.patch</filename>
            <type>text/plain</type>
            <size>13741</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMzI1NykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE3LTAzLTAxICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgRGF0YSBpbnRlcmFj
dGlvbiBzdXBwb3J0IGZvciBXSzEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2OTA2MgorCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4K
KworICAgICAgICBBbGxvdyBmb3Igc2VwYXJhdGUgYWRkaXRpb25zIGZpbGVzIGluIFdLMSBhbmQg
V0syCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEcmFnQ2xp
ZW50TWFjLm1tOgorCiAyMDE3LTAzLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgW1dLMl1bIU5FVFdPUktfU0VTU0lPTl0gRmFpbHVyZSB0byBkb3dubG9hZCB3
aGVuIHVzaW5nIGEgZG93bmxvYWQgYXR0cmlidXRlIHdpdGggbm8gdmFsdWUgb24gYW4gYW5jaG9y
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJE
cmFnQ2xpZW50TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdDbGllbnRNYWMubW0JKHJldmlzaW9uIDIxMzI1NykK
KysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRyYWdD
bGllbnRNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTUxLDggKzUxLDggQEAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotI2lmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9XZWJEcmFnQ2xp
ZW50QWRkaXRpb25zLm1tPikKLSNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJEcmFnQ2xpZW50
QWRkaXRpb25zLm1tPgorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1
ZGUoPFdlYktpdEFkZGl0aW9ucy9XZWJEcmFnQ2xpZW50QWRkaXRpb25zV2ViS2l0Mi5tbT4pCisj
aW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV2ViRHJhZ0NsaWVudEFkZGl0aW9uc1dlYktpdDIubW0+
CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDIxMzI1NykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDI2IEBACisyMDE3LTAzLTAxICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2Fy
ZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgRGF0YSBpbnRlcmFjdGlvbiBzdXBwb3J0IGZvciBX
SzEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTA2
MgorCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICBTdXBwb3J0
IGZvciBkYXRhIGludGVyYWN0aW9uIGluIFdlYktpdDEKKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYkRyYWdDbGllbnQubW06CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAg
ICAgICAoLVtXZWJVSVRleHRJbmRpY2F0b3JEYXRhIGluaXRXaXRoSW1hZ2U6VGV4dEluZGljYXRv
ckRhdGE6c2NhbGU6XSk6CisgICAgICAgICgtW1dlYlVJVGV4dEluZGljYXRvckRhdGEgaW5pdFdp
dGhJbWFnZTpzY2FsZTpdKToKKyAgICAgICAgKC1bV2ViVUlUZXh0SW5kaWNhdG9yRGF0YSBkZWFs
bG9jXSk6CisgICAgICAgICgtW1dlYlZpZXcgX3JlcXVlc3RTdGFydERhdGFJbnRlcmFjdGlvbjpn
bG9iYWxQb3NpdGlvbjpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfc2V0RGF0YUludGVyYWN0aW9u
RGF0YTp0ZXh0SW5kaWNhdG9yOmF0Q2xpZW50UG9zaXRpb246YW5jaG9yUG9pbnQ6YWN0aW9uOl0p
OgorICAgICAgICAoLVtXZWJWaWV3IF9nZXREYXRhSW50ZXJhY3Rpb25EYXRhXSk6CisgICAgICAg
ICogV2ViVmlldy9XZWJWaWV3RGF0YS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0RhdGEu
bW06CisgICAgICAgICgtW1dlYlZpZXdQcml2YXRlIGRlYWxsb2NdKToKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld1ByaXZhdGUu
aDoKKwogMjAxNy0wMi0yNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIEJlZ2luIGVuYWJsaW5nIFdlYlJUQyBvbiA2NC1iaXQKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5tbQko
cmV2aXNpb24gMjEzMjU3KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RHJhZ0NsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtNTksNiArNTksMTAgQEAKIAogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiBfX2hh
c19pbmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMvV2ViRHJhZ0NsaWVudEFkZGl0aW9uc1dlYktpdDEu
bW0+KQorI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dlYkRyYWdDbGllbnRBZGRpdGlvbnNXZWJL
aXQxLm1tPgorI2VuZGlmCisKIFdlYkRyYWdDbGllbnQ6OldlYkRyYWdDbGllbnQoV2ViVmlldyog
d2ViVmlldykKICAgICA6IG1fd2ViVmlldyh3ZWJWaWV3KSAKIHsKQEAgLTE5OCwxMSArMjAyLDEx
IEBAIFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24gV2ViRHJhZ0NsaWVudDoKIHZvaWQgV2ViRHJh
Z0NsaWVudDo6d2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKFdlYkNvcmU6OkRyYWdTb3VyY2VB
Y3Rpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgV2ViQ29yZTo6RGF0YVRyYW5zZmVyJikK
IHsKIH0KLQorI2lmICFFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKIHZvaWQgV2ViRHJhZ0NsaWVu
dDo6c3RhcnREcmFnKFdlYkNvcmU6OkRyYWdJbWFnZSwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJ
bnRQb2ludCYsIGNvbnN0IEZsb2F0UG9pbnQmLCBEYXRhVHJhbnNmZXImLCBGcmFtZSYsIFdlYkNv
cmU6OkRyYWdTb3VyY2VBY3Rpb24pCiB7CiB9Ci0KKyNlbmRpZgogdm9pZCBXZWJEcmFnQ2xpZW50
OjpiZWdpbkRyYWcoRHJhZ0l0ZW0sIEZyYW1lJiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRQ
b2ludCYsIERhdGFUcmFuc2ZlciYsIERyYWdTb3VyY2VBY3Rpb24pCiB7CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCShyZXZpc2lvbiAyMTMyNTcpCisrKyBTb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTE5MCw2ICsx
OTAsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TZWN1cml0eVBvbGljeS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9TZXR0aW5ncy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2NrZXRQcm92aWRlci5oPgorI2lt
cG9ydCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TdHlsZVByb3Bl
cnRpZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dFJlc291cmNlRGVjb2Rlci5oPgogI2ltcG9y
dCA8V2ViQ29yZS9UaHJlYWRDaGVjay5oPgpAQCAtMjM4LDcgKzIzOSw2IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL0FWS2l0U1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvb2t1cFNQSS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9OU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyU1BJLmg+Ci0jaW1w
b3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0
b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvcldpbmRvdy5oPgogI2ltcG9ydCA8
V2ViQ29yZS9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLmg+CkBAIC0zMTksNiArMzE5LDEy
IEBACiAjaW1wb3J0IDxXZWJDb3JlL1dlYlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50
Lmg+CiAjZW5kaWYKIAorI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQorI2ltcG9ydCA8VUlL
aXQvVUlJbWFnZS5oPgorU09GVF9MSU5LX0ZSQU1FV09SSyhVSUtpdCkKK1NPRlRfTElOS19DTEFT
UyhVSUtpdCwgVUlJbWFnZSkKKyNlbmRpZgorCiAjaWYgSEFWRShUT1VDSF9CQVIpICYmIEVOQUJM
RShXRUJfUExBWUJBQ0tfQ09OVFJPTFNfTUFOQUdFUikKIFNPRlRfTElOS19GUkFNRVdPUksoQVZL
aXQpCiBTT0ZUX0xJTktfQ0xBU1MoQVZLaXQsIEFWRnVuY3Rpb25CYXJQbGF5YmFja0NvbnRyb2xz
UHJvdmlkZXIpCkBAIC02MTEsNiArNjE3LDY1IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCisjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCitAaW1wbGVtZW50YXRpb24g
V2ViVUlUZXh0SW5kaWNhdG9yRGF0YQorCitAc3ludGhlc2l6ZSBkYXRhSW50ZXJhY3Rpb25JbWFn
ZT1fZGF0YUludGVyYWN0aW9uSW1hZ2U7CitAc3ludGhlc2l6ZSBzZWxlY3Rpb25SZWN0SW5Sb290
Vmlld0Nvb3JkaW5hdGVzPV9zZWxlY3Rpb25SZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzOworQHN5
bnRoZXNpemUgdGV4dEJvdW5kaW5nUmVjdEluUm9vdFZpZXdDb29yZGluYXRlcz1fdGV4dEJvdW5k
aW5nUmVjdEluUm9vdFZpZXdDb29yZGluYXRlczsKK0BzeW50aGVzaXplIHRleHRSZWN0c0luQm91
bmRpbmdSZWN0Q29vcmRpbmF0ZXM9X3RleHRSZWN0c0luQm91bmRpbmdSZWN0Q29vcmRpbmF0ZXM7
CitAc3ludGhlc2l6ZSBjb250ZW50SW1hZ2VXaXRoSGlnaGxpZ2h0PV9jb250ZW50SW1hZ2VXaXRo
SGlnaGxpZ2h0OworQHN5bnRoZXNpemUgY29udGVudEltYWdlPV9jb250ZW50SW1hZ2U7CisKK0Bl
bmQKKworQGltcGxlbWVudGF0aW9uIFdlYlVJVGV4dEluZGljYXRvckRhdGEgKFdlYlVJVGV4dElu
ZGljYXRvckludGVybmFsKQorCistIChXZWJVSVRleHRJbmRpY2F0b3JEYXRhICopaW5pdFdpdGhJ
bWFnZTooQ0dJbWFnZVJlZilpbWFnZSB0ZXh0SW5kaWNhdG9yRGF0YTooV2ViQ29yZTo6VGV4dElu
ZGljYXRvckRhdGEgJilpbmRpY2F0b3JEYXRhIHNjYWxlOihDR0Zsb2F0KXNjYWxlCit7CisgICAg
aWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgCisg
ICAgX2RhdGFJbnRlcmFjdGlvbkltYWdlID0gW1tbZ2V0VUlJbWFnZUNsYXNzKCkgYWxsb2NdIGlu
aXRXaXRoQ0dJbWFnZTppbWFnZSBzY2FsZTpzY2FsZSBvcmllbnRhdGlvbjpVSUltYWdlT3JpZW50
YXRpb25Eb3duTWlycm9yZWRdIHJldGFpbl07CisgICAgX3NlbGVjdGlvblJlY3RJblJvb3RWaWV3
Q29vcmRpbmF0ZXMgPSBpbmRpY2F0b3JEYXRhLnNlbGVjdGlvblJlY3RJblJvb3RWaWV3Q29vcmRp
bmF0ZXM7CisgICAgX3RleHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMgPSBpbmRp
Y2F0b3JEYXRhLnRleHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXM7CisgICAgCisg
ICAgTlNNdXRhYmxlQXJyYXkgKnRleHRSZWN0c0luQm91bmRpbmdSZWN0Q29vcmRpbmF0ZXMgPSBb
TlNNdXRhYmxlQXJyYXkgYXJyYXldOworICAgIGZvciAoYXV0byByZWN0IDogaW5kaWNhdG9yRGF0
YS50ZXh0UmVjdHNJbkJvdW5kaW5nUmVjdENvb3JkaW5hdGVzKQorICAgICAgICBbdGV4dFJlY3Rz
SW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlcyBhZGRPYmplY3Q6W05TVmFsdWUgdmFsdWVXaXRoQ0dS
ZWN0OnJlY3RdXTsKKyAgICBfdGV4dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlcyA9IFtb
TlNBcnJheSBhcnJheVdpdGhBcnJheTp0ZXh0UmVjdHNJbkJvdW5kaW5nUmVjdENvb3JkaW5hdGVz
XSByZXRhaW5dOworICAgIF9jb250ZW50SW1hZ2VTY2FsZUZhY3RvciA9IGluZGljYXRvckRhdGEu
Y29udGVudEltYWdlU2NhbGVGYWN0b3I7CisgICAgaWYgKGluZGljYXRvckRhdGEuY29udGVudElt
YWdlV2l0aEhpZ2hsaWdodCkKKyAgICAgICAgX2NvbnRlbnRJbWFnZVdpdGhIaWdobGlnaHQgPSBb
W1tnZXRVSUltYWdlQ2xhc3MoKSBhbGxvY10gaW5pdFdpdGhDR0ltYWdlOmluZGljYXRvckRhdGEu
Y29udGVudEltYWdlV2l0aEhpZ2hsaWdodC5nZXQoKS0+bmF0aXZlSW1hZ2UoKS5nZXQoKSBzY2Fs
ZTpzY2FsZSBvcmllbnRhdGlvbjpVSUltYWdlT3JpZW50YXRpb25Eb3duTWlycm9yZWRdIHJldGFp
bl07CisgICAgaWYgKGluZGljYXRvckRhdGEuY29udGVudEltYWdlKQorICAgICAgICBfY29udGVu
dEltYWdlID0gW1tbZ2V0VUlJbWFnZUNsYXNzKCkgYWxsb2NdIGluaXRXaXRoQ0dJbWFnZTppbmRp
Y2F0b3JEYXRhLmNvbnRlbnRJbWFnZS5nZXQoKS0+bmF0aXZlSW1hZ2UoKS5nZXQoKSBzY2FsZTpz
Y2FsZSBvcmllbnRhdGlvbjpVSUltYWdlT3JpZW50YXRpb25Eb3duTWlycm9yZWRdIHJldGFpbl07
CisgICAgCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKFdlYlVJVGV4dEluZGljYXRvckRhdGEg
Kilpbml0V2l0aEltYWdlOihDR0ltYWdlUmVmKWltYWdlIHNjYWxlOihDR0Zsb2F0KXNjYWxlCit7
CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7Cisg
ICAgCisgICAgX2RhdGFJbnRlcmFjdGlvbkltYWdlID0gW1tnZXRVSUltYWdlQ2xhc3MoKSBhbGxv
Y10gaW5pdFdpdGhDR0ltYWdlOmltYWdlIHNjYWxlOnNjYWxlIG9yaWVudGF0aW9uOlVJSW1hZ2VP
cmllbnRhdGlvbkRvd25NaXJyb3JlZF07CisgICAgCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0g
KHZvaWQpZGVhbGxvYworeworICAgIFtfZGF0YUludGVyYWN0aW9uSW1hZ2UgcmVsZWFzZV07Cisg
ICAgW190ZXh0UmVjdHNJbkJvdW5kaW5nUmVjdENvb3JkaW5hdGVzIHJlbGVhc2VdOworICAgIFtf
Y29udGVudEltYWdlV2l0aEhpZ2hsaWdodCByZWxlYXNlXTsKKyAgICBbX2NvbnRlbnRJbWFnZSBy
ZWxlYXNlXTsKKyAgICAKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKK0BlbmQKKyNlbmRpZiAv
LyBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKKwogQGludGVyZmFjZSBXZWJWaWV3IChXZWJGaWxl
SW50ZXJuYWwpCiAjaWYgIVBMQVRGT1JNKElPUykKIC0gKGZsb2F0KV9kZXZpY2VTY2FsZUZhY3Rv
cjsKQEAgLTE3MTAsNyArMTc3NSwzOSBAQCAtICh2b2lkKXVwZGF0ZUxheW91dElnbm9yZVBlbmRp
bmdTdHlsZVNoCiAgICAgICAgIH0KICAgICB9KTsKIH0KLSNlbmRpZiAvLyBQTEFURk9STShJT1Mp
CisjZW5kaWYKKworI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKSAmJiBkZWZpbmVkKF9fY3Bs
dXNwbHVzKQorLSAoQk9PTClfcmVxdWVzdFN0YXJ0RGF0YUludGVyYWN0aW9uOihDR1BvaW50KWNs
aWVudFBvc2l0aW9uIGdsb2JhbFBvc2l0aW9uOihDR1BvaW50KWdsb2JhbFBvc2l0aW9uCit7Cisg
ICAgcmV0dXJuIF9wcml2YXRlLT5wYWdlLT5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS50cnlU
b0JlZ2luRGF0YUludGVyYWN0aW9uQXRQb2ludChJbnRQb2ludChjbGllbnRQb3NpdGlvbiksIElu
dFBvaW50KGdsb2JhbFBvc2l0aW9uKSk7Cit9CisKKy0gKHZvaWQpX3NldERhdGFJbnRlcmFjdGlv
bkRhdGE6KENHSW1hZ2VSZWYpaW1hZ2UgdGV4dEluZGljYXRvcjooc3RkOjpvcHRpb25hbDxUZXh0
SW5kaWNhdG9yRGF0YT4paW5kaWNhdG9yRGF0YSBhdENsaWVudFBvc2l0aW9uOihDR1BvaW50KWNs
aWVudFBvc2l0aW9uIGFuY2hvclBvaW50OihDR1BvaW50KWFuY2hvclBvaW50IGFjdGlvbjoodWlu
dDY0X3QpYWN0aW9uCit7CisgICAgaWYgKGluZGljYXRvckRhdGEpCisgICAgICAgIF9wcml2YXRl
LT50ZXh0SW5kaWNhdG9yRGF0YSA9IFtbW1dlYlVJVGV4dEluZGljYXRvckRhdGEgYWxsb2NdIGlu
aXRXaXRoSW1hZ2U6aW1hZ2UgVGV4dEluZGljYXRvckRhdGE6aW5kaWNhdG9yRGF0YS52YWx1ZSgp
IHNjYWxlOl9wcml2YXRlLT5wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpXSByZXRhaW5dOworICAg
IGVsc2UKKyAgICAgICAgX3ByaXZhdGUtPnRleHRJbmRpY2F0b3JEYXRhID0gW1tbV2ViVUlUZXh0
SW5kaWNhdG9yRGF0YSBhbGxvY10gaW5pdFdpdGhJbWFnZTppbWFnZSBzY2FsZTpfcHJpdmF0ZS0+
cGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKV0gcmV0YWluXTsKK30KKworLSAoV2ViVUlUZXh0SW5k
aWNhdG9yRGF0YSAqKV9nZXREYXRhSW50ZXJhY3Rpb25EYXRhCit7CisgICAgcmV0dXJuIF9wcml2
YXRlLT50ZXh0SW5kaWNhdG9yRGF0YTsKK30KKyNlbHNlCistIChCT09MKV9yZXF1ZXN0U3RhcnRE
YXRhSW50ZXJhY3Rpb246KENHUG9pbnQpY2xpZW50UG9zaXRpb24gZ2xvYmFsUG9zaXRpb246KENH
UG9pbnQpZ2xvYmFsUG9zaXRpb24KK3sKKyAgICByZXR1cm4gTk87Cit9CistICh2b2lkKV9zZXRE
YXRhSW50ZXJhY3Rpb25EYXRhOihDR0ltYWdlUmVmKWltYWdlIHRleHRJbmRpY2F0b3I6KFRleHRJ
bmRpY2F0b3JEYXRhJilpbmRpY2F0b3JEYXRhIGF0Q2xpZW50UG9zaXRpb246KENHUG9pbnQpY2xp
ZW50UG9zaXRpb24gYW5jaG9yUG9pbnQ6KENHUG9pbnQpYW5jaG9yUG9pbnQgYWN0aW9uOih1aW50
NjRfdClhY3Rpb24KK3sKK30KKy0gKFdlYlVJVGV4dEluZGljYXRvckRhdGEgKilfZ2V0RGF0YUlu
dGVyYWN0aW9uRGF0YQoreworICAgIHJldHVybiBuaWw7Cit9CisjZW5kaWYgLy8gRU5BQkxFKERB
VEFfSU5URVJBQ1RJT04pICYmIGRlZmluZWQoX19jcGx1c3BsdXMpCiAKIHN0YXRpYyBOU011dGFi
bGVTZXQgKmtub3duUGx1Z2luTUlNRVR5cGVzKCkKIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlld0RhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXdEYXRhLmgJKHJldmlzaW9uIDIxMzI1NykKKysrIFNvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUsOCBA
QCBjbGFzcyBXZWJQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVuCiAjZW5kaWYKIH0KIAor
QGNsYXNzIFVJSW1hZ2U7CitAY2xhc3MgV2ViVUlUZXh0SW5kaWNhdG9yRGF0YTsKIEBjbGFzcyBX
ZWJJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyOwogQGNsYXNzIFdlYkluc3BlY3RvcjsKIEBjbGFz
cyBXZWJOb2RlSGlnaGxpZ2h0OwpAQCAtMjgyLDYgKzI4NCw3IEBAIEBpbnRlcmZhY2UgV2ViVmll
d1ByaXZhdGUgOiBOU09iamVjdCB7CiAgICAgaW50MzJfdCBkaWREcmF3VGlsZXM7CiAgICAgV1RG
OjpMb2NrIHBlbmRpbmdGaXhlZFBvc2l0aW9uTGF5b3V0UmVjdE11dGV4OwogICAgIENHUmVjdCBw
ZW5kaW5nRml4ZWRQb3NpdGlvbkxheW91dFJlY3Q7CisgICAgV2ViVUlUZXh0SW5kaWNhdG9yRGF0
YSAqdGV4dEluZGljYXRvckRhdGE7CiAjZW5kaWYKIAogI2lmICFQTEFURk9STShJT1MpCkluZGV4
OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0JKHJldmlzaW9uIDIxMzI1
NykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTIxMiw2ICsyMTIsNyBAQCAtICh2b2lkKWRlYWxsb2MKICAgICBbZm9ybURlbGVn
YXRlRm9yd2FyZGVyIHJlbGVhc2VdOwogICAgIFtfY2FyZXRDaGFuZ2VMaXN0ZW5lcnMgcmVsZWFz
ZV07CiAgICAgW19maXhlZFBvc2l0aW9uQ29udGVudCByZWxlYXNlXTsKKyAgICBbdGV4dEluZGlj
YXRvckRhdGEgcmVsZWFzZV07CiAjZW5kaWYKIAogICAgIFtzdXBlciBkZWFsbG9jXTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAkocmV2aXNpb24g
MjEzMjU3KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAko
d29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9IVE1MTWVk
aWFFbGVtZW50RW51bXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvTGF5b3V0TWlsZXN0b25lcy5oPgog
I2ltcG9ydCA8V2ViQ29yZS9UZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UuaD4KKyNpbXBvcnQgPFdl
YkNvcmUvVGV4dEluZGljYXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yV2lu
ZG93Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVLZXlib2FyZFVJTW9kZS5oPgogI2ltcG9y
dCA8ZnVuY3Rpb25hbD4KQEAgLTg5LDYgKzkwLDEzIEBAIFdlYkxheW91dE1pbGVzdG9uZXMga2l0
TGF5b3V0TWlsZXN0b25lcygKIE9CSkNfQ0xBU1MgTlNUZXh0QWx0ZXJuYXRpdmVzOwogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikgJiYgZGVmaW5lZChfX2NwbHVzcGx1cykK
K0BpbnRlcmZhY2UgV2ViVUlUZXh0SW5kaWNhdG9yRGF0YSAoV2ViVUlUZXh0SW5kaWNhdG9ySW50
ZXJuYWwpCistIChXZWJVSVRleHRJbmRpY2F0b3JEYXRhICopaW5pdFdpdGhJbWFnZTooQ0dJbWFn
ZVJlZilpbWFnZSB0ZXh0SW5kaWNhdG9yRGF0YTooV2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGEm
KWluZGljYXRvckRhdGEgc2NhbGU6KENHRmxvYXQpc2NhbGU7CistIChXZWJVSVRleHRJbmRpY2F0
b3JEYXRhICopaW5pdFdpdGhJbWFnZTooQ0dJbWFnZVJlZilpbWFnZSBzY2FsZTooQ0dGbG9hdClz
Y2FsZTsKK0BlbmQKKyNlbmRpZgorCiBAaW50ZXJmYWNlIFdlYlZpZXcgKFdlYlZpZXdFZGl0aW5n
RXh0cmFzKQogLSAoQk9PTClfc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTooRE9NUmFuZ2Ug
KiljdXJyZW50UmFuZ2UgdG9ET01SYW5nZTooRE9NUmFuZ2UgKilwcm9wb3NlZFJhbmdlIGFmZmlu
aXR5OihOU1NlbGVjdGlvbkFmZmluaXR5KXNlbGVjdGlvbkFmZmluaXR5IHN0aWxsU2VsZWN0aW5n
OihCT09MKWZsYWc7CiBAZW5kCkBAIC0yNDgsNiArMjU2LDEwIEBAIEBpbnRlcmZhY2UgV2ViVmll
dyAoV2ViVmlld090aGVySW50ZXJuYWwKIC0gKEJPT0wpX2ZldGNoQ3VzdG9tRml4ZWRQb3NpdGlv
bkxheW91dFJlY3Q6KE5TUmVjdCopcmVjdDsKICNlbmRpZgogCisjaWYgRU5BQkxFKERBVEFfSU5U
RVJBQ1RJT04pICYmIGRlZmluZWQoX19jcGx1c3BsdXMpCistICh2b2lkKV9zZXREYXRhSW50ZXJh
Y3Rpb25EYXRhOihDR0ltYWdlUmVmKWltYWdlIHRleHRJbmRpY2F0b3I6KHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6VGV4dEluZGljYXRvckRhdGE+KXRleHRJbmRpY2F0b3IgYXRDbGllbnRQb3NpdGlv
bjooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBhbmNob3JQb2ludDooQ0dQb2ludClhbmNob3JQb2lu
dCBhY3Rpb246KHVpbnQ2NF90KWFjdGlvbjsKKyNlbmRpZgorCiAtICh2b2lkKV9wcmVmZXJlbmNl
c0NoYW5nZWQ6KFdlYlByZWZlcmVuY2VzICopcHJlZmVyZW5jZXM7CiAKICNpZiBFTkFCTEUoVklE
RU8pICYmIGRlZmluZWQoX19jcGx1c3BsdXMpCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXdQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3UHJpdmF0ZS5oCShyZXZpc2lvbiAyMTMyNTcpCisrKyBTb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDYgKzU1
LDcgQEAKICNlbmRpZgogI2VuZGlmCiAKK0BjbGFzcyBVSUltYWdlOwogQGNsYXNzIE5TRXJyb3I7
CiBAY2xhc3MgV2ViRnJhbWU7CiBAY2xhc3MgV2ViRGV2aWNlT3JpZW50YXRpb247CkBAIC0xODAs
NiArMTgxLDE3IEBAIHR5cGVkZWYgZW51bSB7CiAgICAgV2ViTm90aWZpY2F0aW9uUGVybWlzc2lv
bkRlbmllZAogfSBXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uOwogCitAaW50ZXJmYWNlIFdlYlVJ
VGV4dEluZGljYXRvckRhdGEgOiBOU09iamVjdAorQHByb3BlcnR5IChub25hdG9taWMsIHJldGFp
bikgVUlJbWFnZSAqZGF0YUludGVyYWN0aW9uSW1hZ2U7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
YXNzaWduKSBDR1JlY3Qgc2VsZWN0aW9uUmVjdEluUm9vdFZpZXdDb29yZGluYXRlczsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIENHUmVjdCB0ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmll
d0Nvb3JkaW5hdGVzOworQHByb3BlcnR5IChub25hdG9taWMsIHJldGFpbikgTlNBcnJheTxOU1Zh
bHVlICo+ICp0ZXh0UmVjdHNJbkJvdW5kaW5nUmVjdENvb3JkaW5hdGVzOyAvLyBDR1JlY3QgdmFs
dWVzCitAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBDR0Zsb2F0IGNvbnRlbnRJbWFnZVNj
YWxlRmFjdG9yOworQHByb3BlcnR5IChub25hdG9taWMsIHJldGFpbikgVUlJbWFnZSAqY29udGVu
dEltYWdlV2l0aEhpZ2hsaWdodDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZXRhaW4pIFVJSW1h
Z2UgKmNvbnRlbnRJbWFnZTsKKworQGVuZAorCiAjaWYgIVRBUkdFVF9PU19JUEhPTkUKIEBpbnRl
cmZhY2UgV2ViQ29udHJvbGxlciA6IE5TVHJlZUNvbnRyb2xsZXIgewogICAgIElCT3V0bGV0IFdl
YlZpZXcgKndlYlZpZXc7CkBAIC00NDksNyArNDYxLDEwIEBAIENvdWxkIGJlIHdvcnRoIGFkZGlu
ZyB0byB0aGUgQVBJLgogKyAodm9pZClfcmVsZWFzZU1lbW9yeU5vdzsKIAogLSAodm9pZClfcmVw
bGFjZUN1cnJlbnRIaXN0b3J5SXRlbTooV2ViSGlzdG9yeUl0ZW0gKilpdGVtOwotI2VuZGlmIC8v
IFBMQVRGT1JNKElPUykKKyNlbmRpZiAvLyBUQVJHRVRfT1NfSVBIT05FCisKKy0gKEJPT0wpX3Jl
cXVlc3RTdGFydERhdGFJbnRlcmFjdGlvbjooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBnbG9iYWxQ
b3NpdGlvbjooQ0dQb2ludClnbG9iYWxQb3NpdGlvbjsKKy0gKFdlYlVJVGV4dEluZGljYXRvckRh
dGEgKilfZ2V0RGF0YUludGVyYWN0aW9uRGF0YTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIC8v
IERlcHJlY2F0ZWQuIFVzZSAtW1dlYkRhdGFTb3VyY2UgX3F1aWNrTG9va0NvbnRlbnRdIGluc3Rl
YWQuCg==
</data>
<flag name="review"
          id="324834"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
          </attachment>
      

    </bug>

</bugzilla>