<?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>169567</bug_id>
          
          <creation_ts>2017-03-13 14:02:00 -0700</creation_ts>
          <short_desc>Make classes used by Media Stream encode/decode friendly</short_desc>
          <delta_ts>2017-03-14 13:50:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <blocked>169609</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1287327</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-03-13 14:02:00 -0700</bug_when>
    <thetext>Make classes used by Media Stream encode/decode friendly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287330</commentid>
    <comment_count>1</comment_count>
      <attachid>304297</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-03-13 14:04:03 -0700</bug_when>
    <thetext>Created attachment 304297
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287393</commentid>
    <comment_count>2</comment_count>
      <attachid>304297</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-03-13 15:43:56 -0700</bug_when>
    <thetext>Comment on attachment 304297
Patch

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

&gt; Source/WebCore/Modules/mediastream/MediaConstraintsImpl.h:70
&gt; +template&lt;class Encoder&gt;
&gt; +void MediaConstraintsData::encode(Encoder&amp; encoder) const
&gt; +{
&gt; +    encoder &lt;&lt; mandatoryConstraints &lt;&lt; advancedConstraints &lt;&lt; isValid;
&gt; +}
&gt; +
&gt; +template&lt;class Decoder&gt;
&gt; +bool MediaConstraintsData::decode(Decoder&amp; decoder, MediaConstraintsData&amp; data)
&gt; +{
&gt; +    return decoder.decode(data.mandatoryConstraints)
&gt; +        &amp;&amp; decoder.decode(data.advancedConstraints)
&gt; +        &amp;&amp; decoder.decode(data.isValid);
&gt; +}

These are nice, but we already have an encoder and decoder in WebCoreArgumentCoders. Why don&apos;t you either delete those or replace them with these?

&gt; Source/WebCore/platform/mediastream/CaptureDevice.h:92
&gt; +void CaptureDevice::encode(Encoder&amp; encoder) const
&gt; +{
&gt; +    encoder &lt;&lt; m_persistentId
&gt; +        &lt;&lt; m_label
&gt; +        &lt;&lt; m_groupId
&gt; +        &lt;&lt; m_enabled;
&gt; +    encoder.encodeEnum(m_type);
&gt; +}
&gt; +
&gt; +template&lt;class Decoder&gt;
&gt; +bool CaptureDevice::decode(Decoder&amp; decoder, CaptureDevice&amp; device)
&gt; +{
&gt; +    return decoder.decode(device.m_persistentId)
&gt; +        &amp;&amp; decoder.decode(device.m_label)
&gt; +        &amp;&amp; decoder.decode(device.m_groupId)
&gt; +        &amp;&amp; decoder.decode(device.m_enabled)
&gt; +        &amp;&amp; decoder.decodeEnum(device.m_type);
&gt; +}

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287528</commentid>
    <comment_count>3</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-03-13 23:49:04 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 304297 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=304297&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/mediastream/MediaConstraintsImpl.h:70
&gt; &gt; +template&lt;class Encoder&gt;
&gt; &gt; +void MediaConstraintsData::encode(Encoder&amp; encoder) const
&gt; &gt; +{
&gt; &gt; +    encoder &lt;&lt; mandatoryConstraints &lt;&lt; advancedConstraints &lt;&lt; isValid;
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +template&lt;class Decoder&gt;
&gt; &gt; +bool MediaConstraintsData::decode(Decoder&amp; decoder, MediaConstraintsData&amp; data)
&gt; &gt; +{
&gt; &gt; +    return decoder.decode(data.mandatoryConstraints)
&gt; &gt; +        &amp;&amp; decoder.decode(data.advancedConstraints)
&gt; &gt; +        &amp;&amp; decoder.decode(data.isValid);
&gt; &gt; +}
&gt; 
&gt; These are nice, but we already have an encoder and decoder in
&gt; WebCoreArgumentCoders. Why don&apos;t you either delete those or replace them
&gt; with these?
&gt; 
&gt; &gt; Source/WebCore/platform/mediastream/CaptureDevice.h:92
&gt; &gt; +void CaptureDevice::encode(Encoder&amp; encoder) const
&gt; &gt; +{
&gt; &gt; +    encoder &lt;&lt; m_persistentId
&gt; &gt; +        &lt;&lt; m_label
&gt; &gt; +        &lt;&lt; m_groupId
&gt; &gt; +        &lt;&lt; m_enabled;
&gt; &gt; +    encoder.encodeEnum(m_type);
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +template&lt;class Decoder&gt;
&gt; &gt; +bool CaptureDevice::decode(Decoder&amp; decoder, CaptureDevice&amp; device)
&gt; &gt; +{
&gt; &gt; +    return decoder.decode(device.m_persistentId)
&gt; &gt; +        &amp;&amp; decoder.decode(device.m_label)
&gt; &gt; +        &amp;&amp; decoder.decode(device.m_groupId)
&gt; &gt; +        &amp;&amp; decoder.decode(device.m_enabled)
&gt; &gt; +        &amp;&amp; decoder.decodeEnum(device.m_type);
&gt; &gt; +}
&gt; 
&gt; Ditto.

Good point!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287531</commentid>
    <comment_count>4</comment_count>
      <attachid>304359</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-03-13 23:54:36 -0700</bug_when>
    <thetext>Created attachment 304359
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287532</commentid>
    <comment_count>5</comment_count>
      <attachid>304360</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-03-14 00:01:07 -0700</bug_when>
    <thetext>Created attachment 304360
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287778</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-03-14 13:50:59 -0700</bug_when>
    <thetext>Committed r213936: &lt;http://trac.webkit.org/changeset/213936&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304297</attachid>
            <date>2017-03-13 14:04:03 -0700</date>
            <delta_ts>2017-03-13 15:43:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169567-20170313140402.patch</filename>
            <type>text/plain</type>
            <size>16095</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGFlMjljNTQwMTczNTY4ZTRlMWU3NjNj
MjlmMDc0MzY5MWYwMjg1NDEuLmI1NmQwYjcyZDYxNWJhNTBlZTIwMzY5NDU3NGEyMzI3M2M4Nzhm
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDMtMTMgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBjbGFzc2VzIHVzZWQgYnkgTWVkaWEgU3RyZWFt
IGVuY29kZS9kZWNvZGUgZnJpZW5kbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2OTU2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogd3RmL01lZGlhVGltZS5oOgorICAgICAgICAoV1RGOjpNZWRpYVRp
bWU6OmVuY29kZSk6CisgICAgICAgIChXVEY6Ok1lZGlhVGltZTo6ZGVjb2RlKToKKwogMjAxNy0w
My0wMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luQ2Fp
cm9dICdfX2ludDEyOF90JzogdW5kZWNsYXJlZCBpZGVudGlmaWVyIGluIE1lZGlhVGltZS5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyZmFhNzYwZjdkNmMyNjUzM2ViNzI2YmRhY2I5NmM0Y2ExZDg2NTg4Li40
NjczOGExMThhMWJkN2NhMmE4ZDcyYWExNGZkZDc0NGExOTQ2ZjI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzYgQEAKKzIwMTctMDMtMTMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+
CisKKyAgICAgICAgTWFrZSBjbGFzc2VzIHVzZWQgYnkgTWVkaWEgU3RyZWFtIGVuY29kZS9kZWNv
ZGUgZnJpZW5kbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2OTU2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBlbmNvZGUoKSBhbmQgZGVjb2RlKCkgbWV0aG9kcyBhbmQgaW1wbGVtZW50YXRpb25z
IHRvIGEgdmFyaWV0eSBvZiBtZWRpYSBzdHJlYW0gcmVsYXRlZCBjbGFzc2VzLgorCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5oOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGE6OmVuY29kZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRp
by9tYWMvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpDQUF1
ZGlvU3RyZWFtRGVzY3JpcHRpb246OmVuY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb246OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vQ2FwdHVyZURldmljZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6ZW5j
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OmRlY29kZSk6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OndpZHRoKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6c2V0V2lkdGgpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpoZWlnaHQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpzZXRIZWlnaHQp
OgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpzYW1wbGVS
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6c2V0
U2FtcGxlUmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3M6OnNhbXBsZVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzOjpzZXRTYW1wbGVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5nczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5nczo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50czo6ZW5jb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50czo6
ZGVjb2RlKToKKwogMjAxNy0wMy0wNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZWZhY3RvcjogQWxsb3cgV2ViS2l0MiB0byBvdmVycmlkZSB0aGUgY3JlYXRp
b24gb2YgUmVhbHRpbWVNZWRpYVNvdXJjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01l
ZGlhVGltZS5oIGIvU291cmNlL1dURi93dGYvTWVkaWFUaW1lLmgKaW5kZXggZDdhN2YzMTZiM2Jl
ZGM1MTQxY2QzOGRhMDM1YTI3MWUwYjBiNTk1OC4uYTdiNzQ1N2YyYmFiYWVlZmIzNzY1NGQ0MTM2
YTdiMGUzZjVjNzgzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWVkaWFUaW1lLmgKKysr
IGIvU291cmNlL1dURi93dGYvTWVkaWFUaW1lLmgKQEAgLTEzMCw2ICsxMzAsOSBAQCBwdWJsaWM6
CiAKICAgICBNZWRpYVRpbWUgdG9UaW1lU2NhbGUodWludDMyX3QsIFJvdW5kaW5nRmxhZ3MgPSBS
b3VuZGluZ0ZsYWdzOjpIYWxmQXdheUZyb21aZXJvKSBjb25zdDsKIAorICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIE1lZGlhVGltZSYpOwor
CiBwcml2YXRlOgogICAgIHZvaWQgc2V0VGltZVNjYWxlKHVpbnQzMl90LCBSb3VuZGluZ0ZsYWdz
ID0gUm91bmRpbmdGbGFnczo6SGFsZkF3YXlGcm9tWmVybyk7CiAKQEAgLTE0NCw2ICsxNDcsMjEg
QEAgcHJpdmF0ZToKIGlubGluZSBNZWRpYVRpbWUgb3BlcmF0b3IqKGludDMyX3QgbGhzLCBjb25z
dCBNZWRpYVRpbWUmIHJocykgeyByZXR1cm4gcmhzLm9wZXJhdG9yKihsaHMpOyB9CiAKIFdURl9F
WFBPUlRfUFJJVkFURSBleHRlcm4gTWVkaWFUaW1lIGFicyhjb25zdCBNZWRpYVRpbWUmIHJocyk7
CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIE1lZGlhVGltZTo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3RpbWVWYWx1ZSA8PCBtX3Rp
bWVTY2FsZSA8PCBtX3RpbWVGbGFnczsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK2Jv
b2wgTWVkaWFUaW1lOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTWVkaWFUaW1lJiB0aW1lKQor
eworICAgIHJldHVybiBkZWNvZGVyLmRlY29kZSh0aW1lLm1fdGltZVZhbHVlKQorICAgICAgICAm
JiBkZWNvZGVyLmRlY29kZSh0aW1lLm1fdGltZVNjYWxlKQorICAgICAgICAmJiBkZWNvZGVyLmRl
Y29kZSh0aW1lLm1fdGltZUZsYWdzKTsKK30KKwogfQogCiB1c2luZyBXVEY6Ok1lZGlhVGltZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFDb25z
dHJhaW50c0ltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFD
b25zdHJhaW50c0ltcGwuaAppbmRleCBmYmVlMzk3Y2Q5NTMxN2M4MWIyOGRlZGY1NGEyZDZiMmU5
YjgyN2U5Li44NzJjZWMzYzc3YjFkNjIyZTg3YTFjN2E2MGI1ODllYmY2ZjZkNjY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJ
bXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0
cmFpbnRzSW1wbC5oCkBAIC00NywxMSArNDcsMjggQEAgc3RydWN0IE1lZGlhQ29uc3RyYWludHNE
YXRhIHsKICAgICB7CiAgICAgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBib29sIGRlY29kZShEZWNvZGVyJiwgTWVkaWFDb25zdHJhaW50c0RhdGEmKTsKKwogICAgIE1l
ZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwIG1hbmRhdG9yeUNvbnN0cmFpbnRzOwogICAgIFZlY3Rv
cjxNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcD4gYWR2YW5jZWRDb25zdHJhaW50czsKICAgICBi
b29sIGlzVmFsaWQgeyBmYWxzZSB9OwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3Zv
aWQgTWVkaWFDb25zdHJhaW50c0RhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
eworICAgIGVuY29kZXIgPDwgbWFuZGF0b3J5Q29uc3RyYWludHMgPDwgYWR2YW5jZWRDb25zdHJh
aW50cyA8PCBpc1ZhbGlkOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorYm9vbCBNZWRp
YUNvbnN0cmFpbnRzRGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIE1lZGlhQ29uc3RyYWlu
dHNEYXRhJiBkYXRhKQoreworICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShkYXRhLm1hbmRhdG9y
eUNvbnN0cmFpbnRzKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShkYXRhLmFkdmFuY2VkQ29u
c3RyYWludHMpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGRhdGEuaXNWYWxpZCk7Cit9CisK
IGNsYXNzIE1lZGlhQ29uc3RyYWludHNJbXBsIGZpbmFsIDogcHVibGljIE1lZGlhQ29uc3RyYWlu
dHMgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8TWVkaWFDb25zdHJhaW50c0ltcGw+IGNyZWF0
ZShNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYmIG1hbmRhdG9yeUNvbnN0cmFpbnRzLCBWZWN0
b3I8TWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXA+JiYgYWR2YW5jZWRDb25zdHJhaW50cywgYm9v
bCBpc1ZhbGlkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21h
Yy9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL21hYy9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaAppbmRleCBlYzViNjcyOTQzMTgzMWIx
ZjVkZTA0ODVhZGZmMGE2OTJhMWRhNTY0Li4zZDU0ZjZiMDhlOWU3YmRlZmI3MjBlYmVjZTQ1YjVj
NzY2ZWNkMTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMv
Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vbWFjL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oCkBAIC0zMCw3ICszMCw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9vbCBvcGVyYXRvcj09KGNvbnN0IEF1ZGlvU3RyZWFt
QmFzaWNEZXNjcmlwdGlvbiYsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiYpOwor
V0VCQ09SRV9FWFBPUlQgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNj
cmlwdGlvbiYsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiYpOwogaW5saW5lIGJv
b2wgb3BlcmF0b3IhPShjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24mIGEsIGNvbnN0
IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiYgYikgeyByZXR1cm4gIShhID09IGIpOyB9CiAK
IGNsYXNzIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBmaW5hbCA6IHB1YmxpYyBBdWRpb1N0cmVh
bURlc2NyaXB0aW9uIHsKQEAgLTc2LDYgKzc2LDkgQEAgcHVibGljOgogICAgIGNvbnN0IEF1ZGlv
U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiYgc3RyZWFtRGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVy
biBtX3N0cmVhbURlc2NyaXB0aW9uOyB9CiAgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9u
JiBzdHJlYW1EZXNjcmlwdGlvbigpIHsgcmV0dXJuIG1fc3RyZWFtRGVzY3JpcHRpb247IH0KIAor
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYs
IENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYpOworCiBwcml2YXRlOgogICAgIHZvaWQgY2FsY3Vs
YXRlRm9ybWF0KCk7CiAKQEAgLTg0LDYgKzg3LDM2IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBQ
Q01Gb3JtYXQgbV9mb3JtYXQgeyBOb25lIH07CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
Pgordm9pZCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb246OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9zdHJlYW1EZXNjcmlwdGlvbi5tU2FtcGxlUmF0
ZQorICAgICAgICA8PCBtX3N0cmVhbURlc2NyaXB0aW9uLm1Gb3JtYXRJRAorICAgICAgICA8PCBt
X3N0cmVhbURlc2NyaXB0aW9uLm1Gb3JtYXRGbGFncworICAgICAgICA8PCBtX3N0cmVhbURlc2Ny
aXB0aW9uLm1CeXRlc1BlclBhY2tldAorICAgICAgICA8PCBtX3N0cmVhbURlc2NyaXB0aW9uLm1G
cmFtZXNQZXJQYWNrZXQKKyAgICAgICAgPDwgbV9zdHJlYW1EZXNjcmlwdGlvbi5tQnl0ZXNQZXJG
cmFtZQorICAgICAgICA8PCBtX3N0cmVhbURlc2NyaXB0aW9uLm1DaGFubmVsc1BlckZyYW1lCisg
ICAgICAgIDw8IG1fc3RyZWFtRGVzY3JpcHRpb24ubUJpdHNQZXJDaGFubmVsCisgICAgICAgIDw8
IG1fc3RyZWFtRGVzY3JpcHRpb24ubVJlc2VydmVkCisgICAgICAgIDw8IG1fZm9ybWF0OworfQor
Cit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorYm9vbCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb246
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2Ny
aXB0aW9uKQoreworICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShkZXNjcmlwdGlvbi5tX3N0cmVh
bURlc2NyaXB0aW9uLm1TYW1wbGVSYXRlKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShkZXNj
cmlwdGlvbi5tX3N0cmVhbURlc2NyaXB0aW9uLm1Gb3JtYXRJRCkKKyAgICAgICAgJiYgZGVjb2Rl
ci5kZWNvZGUoZGVzY3JpcHRpb24ubV9zdHJlYW1EZXNjcmlwdGlvbi5tRm9ybWF0RmxhZ3MpCisg
ICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRpb24u
bUJ5dGVzUGVyUGFja2V0KQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShkZXNjcmlwdGlvbi5t
X3N0cmVhbURlc2NyaXB0aW9uLm1GcmFtZXNQZXJQYWNrZXQpCisgICAgICAgICYmIGRlY29kZXIu
ZGVjb2RlKGRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRpb24ubUJ5dGVzUGVyRnJhbWUpCisg
ICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRpb24u
bUNoYW5uZWxzUGVyRnJhbWUpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGRlc2NyaXB0aW9u
Lm1fc3RyZWFtRGVzY3JpcHRpb24ubUJpdHNQZXJDaGFubmVsKQorICAgICAgICAmJiBkZWNvZGVy
LmRlY29kZShkZXNjcmlwdGlvbi5tX3N0cmVhbURlc2NyaXB0aW9uLm1SZXNlcnZlZCkKKyAgICAg
ICAgJiYgZGVjb2Rlci5kZWNvZGUoZGVzY3JpcHRpb24ubV9mb3JtYXQpOworfQorCiBpbmxpbmUg
Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIHRvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uKGNvbnN0
IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKQogewogICAgIEFTU0VSVChkZXNj
cmlwdGlvbi5wbGF0Zm9ybURlc2NyaXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9u
OjpDQUF1ZGlvU3RyZWFtQmFzaWNUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2UuaAppbmRleCA4NjE1MmJmN2VlMmRjYTFhNzBh
ZmE1NTFmZTRjNDA4NjM0ZGQ2YzQyLi5hMTJiNWI5YjI4MWE3MmFkNmNiOGEwNjMyNzc5ZWU3Njc4
NDRmZjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9D
YXB0dXJlRGV2aWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Q2FwdHVyZURldmljZS5oCkBAIC01OSw2ICs1OSwxMCBAQCBwdWJsaWM6CiAKICAgICBib29sIGVu
YWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2VuYWJsZWQ7IH0KICAgICB2b2lkIHNldEVuYWJsZWQo
Ym9vbCBlbmFibGVkKSB7IG1fZW5hYmxlZCA9IGVuYWJsZWQ7IH0KKworICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIENhcHR1cmVEZXZpY2Um
KTsKKwogcHJpdmF0ZToKICAgICBTdHJpbmcgbV9wZXJzaXN0ZW50SWQ7CiAgICAgRGV2aWNlVHlw
ZSBtX3R5cGUgeyBEZXZpY2VUeXBlOjpVbmtub3duIH07CkBAIC02Nyw2ICs3MSwyNiBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9lbmFibGVkIHsgZmFsc2UgfTsKIH07CiAKK3RlbXBsYXRlPGNsYXNz
IEVuY29kZXI+Cit2b2lkIENhcHR1cmVEZXZpY2U6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAoreworICAgIGVuY29kZXIgPDwgbV9wZXJzaXN0ZW50SWQKKyAgICAgICAgPDwgbV9sYWJl
bAorICAgICAgICA8PCBtX2dyb3VwSWQKKyAgICAgICAgPDwgbV9lbmFibGVkOworICAgIGVuY29k
ZXIuZW5jb2RlRW51bShtX3R5cGUpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorYm9v
bCBDYXB0dXJlRGV2aWNlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQ2FwdHVyZURldmljZSYg
ZGV2aWNlKQoreworICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShkZXZpY2UubV9wZXJzaXN0ZW50
SWQpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGRldmljZS5tX2xhYmVsKQorICAgICAgICAm
JiBkZWNvZGVyLmRlY29kZShkZXZpY2UubV9ncm91cElkKQorICAgICAgICAmJiBkZWNvZGVyLmRl
Y29kZShkZXZpY2UubV9lbmFibGVkKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZUVudW0oZGV2
aWNlLm1fdHlwZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVO
QUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oCmluZGV4
IDdiNWRjNzE3YzY3ZmI0OGVlOWRjODU0ZjYxNjBmOTA4ZTdkYjQ2M2QuLmI2MTJlMzI2YThlM2Jj
N2U2ZTdiY2Q2YzQ0ZmJlMDEwMzE5MWZkNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5ncy5oCkBAIC00OSwxMiArNDksMTIgQEAgcHVibGljOgogICAgIH0KIAogICAgIGJvb2wgc3Vw
cG9ydHNXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9ydGVkQ29uc3RyYWludHMuc3VwcG9y
dHNXaWR0aCgpOyB9Ci0gICAgdW5zaWduZWQgbG9uZyB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1f
d2lkdGg7IH0KLSAgICB2b2lkIHNldFdpZHRoKHVuc2lnbmVkIGxvbmcgd2lkdGgpIHsgbV93aWR0
aCA9IHdpZHRoOyB9CisgICAgdWludDMyX3Qgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3dpZHRo
OyB9CisgICAgdm9pZCBzZXRXaWR0aCh1aW50MzJfdCB3aWR0aCkgeyBtX3dpZHRoID0gd2lkdGg7
IH0KIAogICAgIGJvb2wgc3VwcG9ydHNIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX3N1cHBvcnRl
ZENvbnN0cmFpbnRzLnN1cHBvcnRzSGVpZ2h0KCk7IH0KLSAgICB1bnNpZ25lZCBsb25nIGhlaWdo
dCgpIGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9Ci0gICAgdm9pZCBzZXRIZWlnaHQodW5zaWdu
ZWQgbG9uZyBoZWlnaHQpIHsgbV9oZWlnaHQgPSBoZWlnaHQ7IH0KKyAgICB1aW50MzJfdCBoZWln
aHQoKSBjb25zdCB7IHJldHVybiBtX2hlaWdodDsgfQorICAgIHZvaWQgc2V0SGVpZ2h0KHVpbnQz
Ml90IGhlaWdodCkgeyBtX2hlaWdodCA9IGhlaWdodDsgfQogCiAgICAgYm9vbCBzdXBwb3J0c0Fz
cGVjdFJhdGlvKCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0ZWRDb25zdHJhaW50cy5zdXBwb3J0
c0FzcGVjdFJhdGlvKCk7IH0KICAgICBmbG9hdCBhc3BlY3RSYXRpbygpIGNvbnN0IHsgcmV0dXJu
IG1fYXNwZWN0UmF0aW87IH0KQEAgLTczLDEyICs3MywxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRWb2x1bWUoZG91YmxlIHZvbHVtZSkgeyBtX3ZvbHVtZSA9IHZvbHVtZTsgfQogCiAgICAgYm9v
bCBzdXBwb3J0c1NhbXBsZVJhdGUoKSBjb25zdCB7IHJldHVybiBtX3N1cHBvcnRlZENvbnN0cmFp
bnRzLnN1cHBvcnRzU2FtcGxlUmF0ZSgpOyB9Ci0gICAgdW5zaWduZWQgbG9uZyBzYW1wbGVSYXRl
KCkgY29uc3QgeyByZXR1cm4gbV9zYW1wbGVSYXRlOyB9Ci0gICAgdm9pZCBzZXRTYW1wbGVSYXRl
KHVuc2lnbmVkIGxvbmcgc2FtcGxlUmF0ZSkgeyBtX3NhbXBsZVJhdGUgPSBzYW1wbGVSYXRlOyB9
CisgICAgdWludDMyX3Qgc2FtcGxlUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2FtcGxlUmF0ZTsg
fQorICAgIHZvaWQgc2V0U2FtcGxlUmF0ZSh1aW50MzJfdCBzYW1wbGVSYXRlKSB7IG1fc2FtcGxl
UmF0ZSA9IHNhbXBsZVJhdGU7IH0KIAogICAgIGJvb2wgc3VwcG9ydHNTYW1wbGVTaXplKCkgY29u
c3QgeyByZXR1cm4gbV9zdXBwb3J0ZWRDb25zdHJhaW50cy5zdXBwb3J0c1NhbXBsZVNpemUoKTsg
fQotICAgIHVuc2lnbmVkIGxvbmcgc2FtcGxlU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2FtcGxl
U2l6ZTsgfQotICAgIHZvaWQgc2V0U2FtcGxlU2l6ZSh1bnNpZ25lZCBsb25nIHNhbXBsZVNpemUp
IHsgbV9zYW1wbGVTaXplID0gc2FtcGxlU2l6ZTsgfQorICAgIHVpbnQzMl90IHNhbXBsZVNpemUo
KSBjb25zdCB7IHJldHVybiBtX3NhbXBsZVNpemU7IH0KKyAgICB2b2lkIHNldFNhbXBsZVNpemUo
dWludDMyX3Qgc2FtcGxlU2l6ZSkgeyBtX3NhbXBsZVNpemUgPSBzYW1wbGVTaXplOyB9CiAKICAg
ICBib29sIHN1cHBvcnRzRWNob0NhbmNlbGxhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9y
dGVkQ29uc3RyYWludHMuc3VwcG9ydHNFY2hvQ2FuY2VsbGF0aW9uKCk7IH0KICAgICBib29sIGVj
aG9DYW5jZWxsYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2VjaG9DYW5jZWxsYXRpb247IH0KQEAg
LTk0LDE1ICs5NCwxOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFN1cHBvcnRlZENvbnN0cmFp
dHMoY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzJiBzdXBwb3J0
ZWRDb25zdHJhaW50cykgeyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzID0gc3VwcG9ydGVkQ29uc3Ry
YWludHM7IH0KIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgYm9vbCBkZWNv
ZGUoRGVjb2RlciYsIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYpOworCiBwcml2YXRlOgot
ICAgIHVuc2lnbmVkIGxvbmcgbV93aWR0aCB7IDAgfTsKLSAgICB1bnNpZ25lZCBsb25nIG1faGVp
Z2h0IHsgMCB9OworICAgIHVpbnQzMl90IG1fd2lkdGggeyAwIH07CisgICAgdWludDMyX3QgbV9o
ZWlnaHQgeyAwIH07CiAgICAgZmxvYXQgbV9hc3BlY3RSYXRpbyB7IDAgfTsKICAgICBmbG9hdCBt
X2ZyYW1lUmF0ZSB7IDAgfTsKICAgICBWaWRlb0ZhY2luZ01vZGUgbV9mYWNpbmdNb2RlIHsgVW5r
bm93biB9OwogICAgIGRvdWJsZSBtX3ZvbHVtZSB7IDAgfTsKLSAgICB1bnNpZ25lZCBsb25nIG1f
c2FtcGxlUmF0ZSB7IDAgfTsKLSAgICB1bnNpZ25lZCBsb25nIG1fc2FtcGxlU2l6ZSB7IDAgfTsK
KyAgICB1aW50MzJfdCBtX3NhbXBsZVJhdGUgeyAwIH07CisgICAgdWludDMyX3QgbV9zYW1wbGVT
aXplIHsgMCB9OwogICAgIGJvb2wgbV9lY2hvQ2FuY2VsbGF0aW9uIHsgMCB9OwogCiAgICAgQXRv
bWljU3RyaW5nIG1fZGV2aWNlSWQ7CkBAIC0xMTEsNiArMTE0LDQwIEBAIHByaXZhdGU6CiAgICAg
UmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzIG1fc3VwcG9ydGVkQ29uc3Ry
YWludHM7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3M6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVu
Y29kZXIgPDwgbV93aWR0aAorICAgICAgICA8PCBtX2hlaWdodAorICAgICAgICA8PCBtX2FzcGVj
dFJhdGlvCisgICAgICAgIDw8IG1fZnJhbWVSYXRlCisgICAgICAgIDw8IG1fdm9sdW1lCisgICAg
ICAgIDw8IG1fc2FtcGxlUmF0ZQorICAgICAgICA8PCBtX3NhbXBsZVNpemUKKyAgICAgICAgPDwg
bV9lY2hvQ2FuY2VsbGF0aW9uCisgICAgICAgIDw8IG1fZGV2aWNlSWQKKyAgICAgICAgPDwgbV9n
cm91cElkCisgICAgICAgIDw8IG1fc3VwcG9ydGVkQ29uc3RyYWludHM7CisgICAgZW5jb2Rlci5l
bmNvZGVFbnVtKG1fZmFjaW5nTW9kZSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+Citi
b29sIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MpCit7CisgICAgcmV0dXJuIGRl
Y29kZXIuZGVjb2RlKHNldHRpbmdzLm1fd2lkdGgpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2Rl
KHNldHRpbmdzLm1faGVpZ2h0KQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShzZXR0aW5ncy5t
X2FzcGVjdFJhdGlvKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShzZXR0aW5ncy5tX2ZyYW1l
UmF0ZSkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoc2V0dGluZ3MubV92b2x1bWUpCisgICAg
ICAgICYmIGRlY29kZXIuZGVjb2RlKHNldHRpbmdzLm1fc2FtcGxlUmF0ZSkKKyAgICAgICAgJiYg
ZGVjb2Rlci5kZWNvZGUoc2V0dGluZ3MubV9zYW1wbGVTaXplKQorICAgICAgICAmJiBkZWNvZGVy
LmRlY29kZShzZXR0aW5ncy5tX2VjaG9DYW5jZWxsYXRpb24pCisgICAgICAgICYmIGRlY29kZXIu
ZGVjb2RlKHNldHRpbmdzLm1fZGV2aWNlSWQpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKHNl
dHRpbmdzLm1fZ3JvdXBJZCkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoc2V0dGluZ3MubV9z
dXBwb3J0ZWRDb25zdHJhaW50cykKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGVFbnVtKHNldHRp
bmdzLm1fZmFjaW5nTW9kZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29u
c3RyYWludHMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5oCmluZGV4IGJmYjU0ZTZkNjA5NDZhNzYy
N2QyNGY2NzM3MDgxOWQ1MDU4ZmNkZjIuLmZhZjk0YmU2YTcxNzAyMWQ2ZDJiYWU2YzM1OWMyZGEz
N2JiMjAwYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRD
b25zdHJhaW50cy5oCkBAIC05Niw2ICs5Niw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3Qg
QXRvbWljU3RyaW5nJiBuYW1lRm9yQ29uc3RyYWludChNZWRpYUNvbnN0cmFpbnRUeXBlKTsKICAg
ICBzdGF0aWMgTWVkaWFDb25zdHJhaW50VHlwZSBjb25zdHJhaW50RnJvbU5hbWUoY29uc3QgU3Ry
aW5nJik7CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVy
JikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIGJvb2wgZGVjb2Rl
KERlY29kZXImLCBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMmKTsKKwog
cHJpdmF0ZToKICAgICBib29sIG1fc3VwcG9ydHNXaWR0aCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X3N1cHBvcnRzSGVpZ2h0IHsgZmFsc2UgfTsKQEAgLTExMCw2ICsxMTMsMzggQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fc3VwcG9ydHNHcm91cElkIHsgZmFsc2UgfTsKIH07CiAKK3RlbXBsYXRlPGNs
YXNzIEVuY29kZXI+Cit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50
czo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3N1
cHBvcnRzV2lkdGgKKyAgICAgICAgPDwgbV9zdXBwb3J0c0hlaWdodAorICAgICAgICA8PCBtX3N1
cHBvcnRzQXNwZWN0UmF0aW8KKyAgICAgICAgPDwgbV9zdXBwb3J0c0ZyYW1lUmF0ZQorICAgICAg
ICA8PCBtX3N1cHBvcnRzRmFjaW5nTW9kZQorICAgICAgICA8PCBtX3N1cHBvcnRzVm9sdW1lCisg
ICAgICAgIDw8IG1fc3VwcG9ydHNTYW1wbGVSYXRlCisgICAgICAgIDw8IG1fc3VwcG9ydHNTYW1w
bGVTaXplCisgICAgICAgIDw8IG1fc3VwcG9ydHNFY2hvQ2FuY2VsbGF0aW9uCisgICAgICAgIDw8
IG1fc3VwcG9ydHNEZXZpY2VJZAorICAgICAgICA8PCBtX3N1cHBvcnRzR3JvdXBJZDsKK30KKwor
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK2Jvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRl
ZENvbnN0cmFpbnRzOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmVhbHRpbWVNZWRpYVNvdXJj
ZVN1cHBvcnRlZENvbnN0cmFpbnRzJiBjb25zdHJhaW50cykKK3sKKyAgICByZXR1cm4gZGVjb2Rl
ci5kZWNvZGUoY29uc3RyYWludHMubV9zdXBwb3J0c1dpZHRoKQorICAgICAgICAmJiBkZWNvZGVy
LmRlY29kZShjb25zdHJhaW50cy5tX3N1cHBvcnRzSGVpZ2h0KQorICAgICAgICAmJiBkZWNvZGVy
LmRlY29kZShjb25zdHJhaW50cy5tX3N1cHBvcnRzQXNwZWN0UmF0aW8pCisgICAgICAgICYmIGRl
Y29kZXIuZGVjb2RlKGNvbnN0cmFpbnRzLm1fc3VwcG9ydHNGcmFtZVJhdGUpCisgICAgICAgICYm
IGRlY29kZXIuZGVjb2RlKGNvbnN0cmFpbnRzLm1fc3VwcG9ydHNGYWNpbmdNb2RlKQorICAgICAg
ICAmJiBkZWNvZGVyLmRlY29kZShjb25zdHJhaW50cy5tX3N1cHBvcnRzVm9sdW1lKQorICAgICAg
ICAmJiBkZWNvZGVyLmRlY29kZShjb25zdHJhaW50cy5tX3N1cHBvcnRzU2FtcGxlUmF0ZSkKKyAg
ICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uc3RyYWludHMubV9zdXBwb3J0c1NhbXBsZVNpemUp
CisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbnN0cmFpbnRzLm1fc3VwcG9ydHNFY2hvQ2Fu
Y2VsbGF0aW9uKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25zdHJhaW50cy5tX3N1cHBv
cnRzRGV2aWNlSWQpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbnN0cmFpbnRzLm1fc3Vw
cG9ydHNHcm91cElkKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
RU5BQkxFKE1FRElBX1NUUkVBTSkK
</data>
<flag name="review"
          id="325851"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304359</attachid>
            <date>2017-03-13 23:54:36 -0700</date>
            <delta_ts>2017-03-14 00:01:02 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-169567-20170313235436.patch</filename>
            <type>text/plain</type>
            <size>17003</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzODcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDYxOTMwMmI1NTgwM2QzOTBmYzRiM2Nl
ZTllY2Q1Y2NiYmExNzI3OWIuLjUyNzJlNTk5YWY5ODY1YjUwYjlkMTdmMGEzYjEyMWQ1NzY0ODc0
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDMtMTMgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBjbGFzc2VzIHVzZWQgYnkgTWVkaWEgU3RyZWFt
IGVuY29kZS9kZWNvZGUgZnJpZW5kbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2OTU2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogd3RmL01lZGlhVGltZS5oOgorICAgICAgICAoV1RGOjpNZWRpYVRp
bWU6OmVuY29kZSk6CisgICAgICAgIChXVEY6Ok1lZGlhVGltZTo6ZGVjb2RlKToKKwogMjAxNy0w
My0xMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBb
V1RGXSBDbGVhbiB1cCBSdW5Mb29wIGFuZCBXb3JrUXVldWUgd2l0aCBTZWNvbmRzIGFuZCBGdW5j
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDJmNjIwY2IzMWIwODc4OGVkNzIzNDVhYzE0ZGZlZDZlNzFhZjQx
NjMuLmFmMjI1NTI1MGMxYmI5NWM0MjE4NDI2ZGJiODMzYTYyMDdjNzQwOWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzNiBAQAorMjAxNy0wMy0xMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KKworICAgICAgICBNYWtlIGNsYXNzZXMgdXNlZCBieSBNZWRpYSBTdHJlYW0gZW5jb2Rl
L2RlY29kZSBmcmllbmRseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY5NTY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIGVuY29kZSgpIGFuZCBkZWNvZGUoKSBtZXRob2RzIGFuZCBpbXBsZW1lbnRh
dGlvbnMgdG8gYSB2YXJpZXR5IG9mIG1lZGlhIHN0cmVhbSByZWxhdGVkIGNsYXNzZXMuCisKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmg6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2F1ZGlvL21hYy9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjo6ZW5jb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9DYXB0dXJlRGV2aWNlLmg6CisgICAgICAgIChXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
OjplbmNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6ZGVjb2RlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6d2lkdGgp
OgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpzZXRXaWR0
aCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OmhlaWdo
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OnNldEhl
aWdodCk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OnNh
bXBsZVJhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdz
OjpzZXRTYW1wbGVSYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5nczo6c2FtcGxlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3M6OnNldFNhbXBsZVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzOjplbmNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5oOgorICAgICAgICAo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzOjplbmNvZGUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFp
bnRzOjpkZWNvZGUpOgorCiAyMDE3LTAzLTA2ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlZmFjdG9yOiBBbGxvdyBXZWJLaXQyIHRvIG92ZXJyaWRlIHRoZSBj
cmVhdGlvbiBvZiBSZWFsdGltZU1lZGlhU291cmNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGNlNmZmNjYwMjU2
NTExMzg1ZmQwODg3ZjM0NDYxNjI5NmM2YTkwNmYuLmQzNWIzY2JmNDA0YWQwZmZkZDJlOTRhNTI0
MzBjMTE1MTBlN2VkMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNy0wMy0xMyAg
SmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIGNsYXNzZXMg
dXNlZCBieSBNZWRpYSBTdHJlYW0gZW5jb2RlL2RlY29kZSBmcmllbmRseQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5NTY3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIE1ha2UgdGhlIGVuY29kZXIgYW5kIGRl
Y29kZXIgZm9yIE1lZGlhQ29uc3RyYWludHNEYXRhIGEgbGl0dGxlIGxlc3Mgd29yZHkuCisKKyAg
ICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxNZWRpYUNvbnN0cmFpbnRzRGF0YT46OmVuY29kZSk6CisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8TWVkaWFDb25zdHJhaW50c0RhdGE+OjpkZWNvZGUpOgorCiAyMDE3
LTAzLTA2ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZmFj
dG9yOiBBbGxvdyBXZWJLaXQyIHRvIG92ZXJyaWRlIHRoZSBjcmVhdGlvbiBvZiBSZWFsdGltZU1l
ZGlhU291cmNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVkaWFUaW1lLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9NZWRpYVRpbWUuaAppbmRleCBkN2E3ZjMxNmIzYmVkYzUxNDFjZDM4ZGEwMzVh
MjcxZTBiMGI1OTU4Li5hN2I3NDU3ZjJiYWJhZWVmYjM3NjU0ZDQxMzZhN2IwZTNmNWM3ODMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZWRpYVRpbWUuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9NZWRpYVRpbWUuaApAQCAtMTMwLDYgKzEzMCw5IEBAIHB1YmxpYzoKIAogICAgIE1lZGlhVGlt
ZSB0b1RpbWVTY2FsZSh1aW50MzJfdCwgUm91bmRpbmdGbGFncyA9IFJvdW5kaW5nRmxhZ3M6Okhh
bGZBd2F5RnJvbVplcm8pIGNvbnN0OwogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgTWVkaWFUaW1lJik7CisKIHByaXZhdGU6CiAgICAg
dm9pZCBzZXRUaW1lU2NhbGUodWludDMyX3QsIFJvdW5kaW5nRmxhZ3MgPSBSb3VuZGluZ0ZsYWdz
OjpIYWxmQXdheUZyb21aZXJvKTsKIApAQCAtMTQ0LDYgKzE0NywyMSBAQCBwcml2YXRlOgogaW5s
aW5lIE1lZGlhVGltZSBvcGVyYXRvciooaW50MzJfdCBsaHMsIGNvbnN0IE1lZGlhVGltZSYgcmhz
KSB7IHJldHVybiByaHMub3BlcmF0b3IqKGxocyk7IH0KIAogV1RGX0VYUE9SVF9QUklWQVRFIGV4
dGVybiBNZWRpYVRpbWUgYWJzKGNvbnN0IE1lZGlhVGltZSYgcmhzKTsKKwordGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4KK3ZvaWQgTWVkaWFUaW1lOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fdGltZVZhbHVlIDw8IG1fdGltZVNjYWxlIDw8IG1fdGlt
ZUZsYWdzOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorYm9vbCBNZWRpYVRpbWU6OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBNZWRpYVRpbWUmIHRpbWUpCit7CisgICAgcmV0dXJuIGRl
Y29kZXIuZGVjb2RlKHRpbWUubV90aW1lVmFsdWUpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2Rl
KHRpbWUubV90aW1lU2NhbGUpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKHRpbWUubV90aW1l
RmxhZ3MpOworfQorCiB9CiAKIHVzaW5nIFdURjo6TWVkaWFUaW1lOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0NBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbi5oCmluZGV4IGVjNWI2NzI5NDMxODMxYjFmNWRlMDQ4NWFkZmYwYTY5MmExZGE1NjQuLjNk
NTRmNmIwOGU5ZTdiZGVmYjcyMGViZWNlNDViNWM3NjZlY2QxNDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uLmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1ib29s
IG9wZXJhdG9yPT0oY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uJiwgY29uc3QgQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uJik7CitXRUJDT1JFX0VYUE9SVCBib29sIG9wZXJhdG9y
PT0oY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uJiwgY29uc3QgQXVkaW9TdHJlYW1C
YXNpY0Rlc2NyaXB0aW9uJik7CiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEF1ZGlvU3Ry
ZWFtQmFzaWNEZXNjcmlwdGlvbiYgYSwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9u
JiBiKSB7IHJldHVybiAhKGEgPT0gYik7IH0KIAogY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0
aW9uIGZpbmFsIDogcHVibGljIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gewpAQCAtNzYsNiArNzYs
OSBAQCBwdWJsaWM6CiAgICAgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uJiBzdHJl
YW1EZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc3RyZWFtRGVzY3JpcHRpb247IH0KICAg
ICBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24mIHN0cmVhbURlc2NyaXB0aW9uKCkgeyByZXR1
cm4gbV9zdHJlYW1EZXNjcmlwdGlvbjsgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
dm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJik7
CisKIHByaXZhdGU6CiAgICAgdm9pZCBjYWxjdWxhdGVGb3JtYXQoKTsKIApAQCAtODQsNiArODcs
MzYgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFBDTUZvcm1hdCBtX2Zvcm1hdCB7IE5vbmUgfTsK
IH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIENBQXVkaW9TdHJlYW1EZXNjcmlw
dGlvbjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBt
X3N0cmVhbURlc2NyaXB0aW9uLm1TYW1wbGVSYXRlCisgICAgICAgIDw8IG1fc3RyZWFtRGVzY3Jp
cHRpb24ubUZvcm1hdElECisgICAgICAgIDw8IG1fc3RyZWFtRGVzY3JpcHRpb24ubUZvcm1hdEZs
YWdzCisgICAgICAgIDw8IG1fc3RyZWFtRGVzY3JpcHRpb24ubUJ5dGVzUGVyUGFja2V0CisgICAg
ICAgIDw8IG1fc3RyZWFtRGVzY3JpcHRpb24ubUZyYW1lc1BlclBhY2tldAorICAgICAgICA8PCBt
X3N0cmVhbURlc2NyaXB0aW9uLm1CeXRlc1BlckZyYW1lCisgICAgICAgIDw8IG1fc3RyZWFtRGVz
Y3JpcHRpb24ubUNoYW5uZWxzUGVyRnJhbWUKKyAgICAgICAgPDwgbV9zdHJlYW1EZXNjcmlwdGlv
bi5tQml0c1BlckNoYW5uZWwKKyAgICAgICAgPDwgbV9zdHJlYW1EZXNjcmlwdGlvbi5tUmVzZXJ2
ZWQKKyAgICAgICAgPDwgbV9mb3JtYXQ7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+Citi
b29sIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIENB
QXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24pCit7CisgICAgcmV0dXJuIGRlY29k
ZXIuZGVjb2RlKGRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRpb24ubVNhbXBsZVJhdGUpCisg
ICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRpb24u
bUZvcm1hdElEKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShkZXNjcmlwdGlvbi5tX3N0cmVh
bURlc2NyaXB0aW9uLm1Gb3JtYXRGbGFncykKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoZGVz
Y3JpcHRpb24ubV9zdHJlYW1EZXNjcmlwdGlvbi5tQnl0ZXNQZXJQYWNrZXQpCisgICAgICAgICYm
IGRlY29kZXIuZGVjb2RlKGRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRpb24ubUZyYW1lc1Bl
clBhY2tldCkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoZGVzY3JpcHRpb24ubV9zdHJlYW1E
ZXNjcmlwdGlvbi5tQnl0ZXNQZXJGcmFtZSkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoZGVz
Y3JpcHRpb24ubV9zdHJlYW1EZXNjcmlwdGlvbi5tQ2hhbm5lbHNQZXJGcmFtZSkKKyAgICAgICAg
JiYgZGVjb2Rlci5kZWNvZGUoZGVzY3JpcHRpb24ubV9zdHJlYW1EZXNjcmlwdGlvbi5tQml0c1Bl
ckNoYW5uZWwpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGRlc2NyaXB0aW9uLm1fc3RyZWFt
RGVzY3JpcHRpb24ubVJlc2VydmVkKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShkZXNjcmlw
dGlvbi5tX2Zvcm1hdCk7Cit9CisKIGlubGluZSBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gdG9D
QUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24oY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVz
Y3JpcHRpb24pCiB7CiAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24o
KS50eXBlID09IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURl
dmljZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmlj
ZS5oCmluZGV4IDg2MTUyYmY3ZWUyZGNhMWE3MGFmYTU1MWZlNGM0MDg2MzRkZDZjNDIuLjc3NTFl
MjAwNjhmM2Y1YzA1ZWVjYWYyOTVhZGU1Y2Q3NGU1ZDdlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlLmgKQEAgLTU5LDYgKzU5
LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBlbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9lbmFi
bGVkOyB9CiAgICAgdm9pZCBzZXRFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2VuYWJsZWQgPSBl
bmFibGVkOyB9CisKIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcGVyc2lzdGVudElkOwogICAgIERl
dmljZVR5cGUgbV90eXBlIHsgRGV2aWNlVHlwZTo6VW5rbm93biB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MuaAppbmRleCA3YjVkYzcxN2M2N2ZiNDhlZTlkYzg1NGY2MTYwZjkwOGU3
ZGI0NjNkLi5iNjEyZTMyNmE4ZTNiYzdlNmU3YmNkNmM0NGZiZTAxMDMxOTFmZDY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaApAQCAtNDksMTIgKzQ5LDEyIEBAIHB1YmxpYzoK
ICAgICB9CiAKICAgICBib29sIHN1cHBvcnRzV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3N1cHBv
cnRlZENvbnN0cmFpbnRzLnN1cHBvcnRzV2lkdGgoKTsgfQotICAgIHVuc2lnbmVkIGxvbmcgd2lk
dGgoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoOyB9Ci0gICAgdm9pZCBzZXRXaWR0aCh1bnNpZ25l
ZCBsb25nIHdpZHRoKSB7IG1fd2lkdGggPSB3aWR0aDsgfQorICAgIHVpbnQzMl90IHdpZHRoKCkg
Y29uc3QgeyByZXR1cm4gbV93aWR0aDsgfQorICAgIHZvaWQgc2V0V2lkdGgodWludDMyX3Qgd2lk
dGgpIHsgbV93aWR0aCA9IHdpZHRoOyB9CiAKICAgICBib29sIHN1cHBvcnRzSGVpZ2h0KCkgY29u
c3QgeyByZXR1cm4gbV9zdXBwb3J0ZWRDb25zdHJhaW50cy5zdXBwb3J0c0hlaWdodCgpOyB9Ci0g
ICAgdW5zaWduZWQgbG9uZyBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2hlaWdodDsgfQotICAg
IHZvaWQgc2V0SGVpZ2h0KHVuc2lnbmVkIGxvbmcgaGVpZ2h0KSB7IG1faGVpZ2h0ID0gaGVpZ2h0
OyB9CisgICAgdWludDMyX3QgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9oZWlnaHQ7IH0KKyAg
ICB2b2lkIHNldEhlaWdodCh1aW50MzJfdCBoZWlnaHQpIHsgbV9oZWlnaHQgPSBoZWlnaHQ7IH0K
IAogICAgIGJvb2wgc3VwcG9ydHNBc3BlY3RSYXRpbygpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9y
dGVkQ29uc3RyYWludHMuc3VwcG9ydHNBc3BlY3RSYXRpbygpOyB9CiAgICAgZmxvYXQgYXNwZWN0
UmF0aW8oKSBjb25zdCB7IHJldHVybiBtX2FzcGVjdFJhdGlvOyB9CkBAIC03MywxMiArNzMsMTIg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0Vm9sdW1lKGRvdWJsZSB2b2x1bWUpIHsgbV92b2x1bWUg
PSB2b2x1bWU7IH0KIAogICAgIGJvb2wgc3VwcG9ydHNTYW1wbGVSYXRlKCkgY29uc3QgeyByZXR1
cm4gbV9zdXBwb3J0ZWRDb25zdHJhaW50cy5zdXBwb3J0c1NhbXBsZVJhdGUoKTsgfQotICAgIHVu
c2lnbmVkIGxvbmcgc2FtcGxlUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2FtcGxlUmF0ZTsgfQot
ICAgIHZvaWQgc2V0U2FtcGxlUmF0ZSh1bnNpZ25lZCBsb25nIHNhbXBsZVJhdGUpIHsgbV9zYW1w
bGVSYXRlID0gc2FtcGxlUmF0ZTsgfQorICAgIHVpbnQzMl90IHNhbXBsZVJhdGUoKSBjb25zdCB7
IHJldHVybiBtX3NhbXBsZVJhdGU7IH0KKyAgICB2b2lkIHNldFNhbXBsZVJhdGUodWludDMyX3Qg
c2FtcGxlUmF0ZSkgeyBtX3NhbXBsZVJhdGUgPSBzYW1wbGVSYXRlOyB9CiAKICAgICBib29sIHN1
cHBvcnRzU2FtcGxlU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9ydGVkQ29uc3RyYWludHMu
c3VwcG9ydHNTYW1wbGVTaXplKCk7IH0KLSAgICB1bnNpZ25lZCBsb25nIHNhbXBsZVNpemUoKSBj
b25zdCB7IHJldHVybiBtX3NhbXBsZVNpemU7IH0KLSAgICB2b2lkIHNldFNhbXBsZVNpemUodW5z
aWduZWQgbG9uZyBzYW1wbGVTaXplKSB7IG1fc2FtcGxlU2l6ZSA9IHNhbXBsZVNpemU7IH0KKyAg
ICB1aW50MzJfdCBzYW1wbGVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9zYW1wbGVTaXplOyB9Cisg
ICAgdm9pZCBzZXRTYW1wbGVTaXplKHVpbnQzMl90IHNhbXBsZVNpemUpIHsgbV9zYW1wbGVTaXpl
ID0gc2FtcGxlU2l6ZTsgfQogCiAgICAgYm9vbCBzdXBwb3J0c0VjaG9DYW5jZWxsYXRpb24oKSBj
b25zdCB7IHJldHVybiBtX3N1cHBvcnRlZENvbnN0cmFpbnRzLnN1cHBvcnRzRWNob0NhbmNlbGxh
dGlvbigpOyB9CiAgICAgYm9vbCBlY2hvQ2FuY2VsbGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9l
Y2hvQ2FuY2VsbGF0aW9uOyB9CkBAIC05NCwxNSArOTQsMTggQEAgcHVibGljOgogCiAgICAgdm9p
ZCBzZXRTdXBwb3J0ZWRDb25zdHJhaXRzKGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0
ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29uc3RyYWludHMpIHsgbV9zdXBwb3J0ZWRDb25zdHJh
aW50cyA9IHN1cHBvcnRlZENvbnN0cmFpbnRzOyB9CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MmKTsKKwogcHJpdmF0ZToKLSAgICB1bnNpZ25lZCBsb25nIG1fd2lkdGggeyAwIH07Ci0g
ICAgdW5zaWduZWQgbG9uZyBtX2hlaWdodCB7IDAgfTsKKyAgICB1aW50MzJfdCBtX3dpZHRoIHsg
MCB9OworICAgIHVpbnQzMl90IG1faGVpZ2h0IHsgMCB9OwogICAgIGZsb2F0IG1fYXNwZWN0UmF0
aW8geyAwIH07CiAgICAgZmxvYXQgbV9mcmFtZVJhdGUgeyAwIH07CiAgICAgVmlkZW9GYWNpbmdN
b2RlIG1fZmFjaW5nTW9kZSB7IFVua25vd24gfTsKICAgICBkb3VibGUgbV92b2x1bWUgeyAwIH07
Ci0gICAgdW5zaWduZWQgbG9uZyBtX3NhbXBsZVJhdGUgeyAwIH07Ci0gICAgdW5zaWduZWQgbG9u
ZyBtX3NhbXBsZVNpemUgeyAwIH07CisgICAgdWludDMyX3QgbV9zYW1wbGVSYXRlIHsgMCB9Owor
ICAgIHVpbnQzMl90IG1fc2FtcGxlU2l6ZSB7IDAgfTsKICAgICBib29sIG1fZWNob0NhbmNlbGxh
dGlvbiB7IDAgfTsKIAogICAgIEF0b21pY1N0cmluZyBtX2RldmljZUlkOwpAQCAtMTExLDYgKzEx
NCw0MCBAQCBwcml2YXRlOgogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJh
aW50cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4KK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fd2lkdGgKKyAgICAgICAgPDwgbV9oZWln
aHQKKyAgICAgICAgPDwgbV9hc3BlY3RSYXRpbworICAgICAgICA8PCBtX2ZyYW1lUmF0ZQorICAg
ICAgICA8PCBtX3ZvbHVtZQorICAgICAgICA8PCBtX3NhbXBsZVJhdGUKKyAgICAgICAgPDwgbV9z
YW1wbGVTaXplCisgICAgICAgIDw8IG1fZWNob0NhbmNlbGxhdGlvbgorICAgICAgICA8PCBtX2Rl
dmljZUlkCisgICAgICAgIDw8IG1fZ3JvdXBJZAorICAgICAgICA8PCBtX3N1cHBvcnRlZENvbnN0
cmFpbnRzOworICAgIGVuY29kZXIuZW5jb2RlRW51bShtX2ZhY2luZ01vZGUpOworfQorCit0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPgorYm9vbCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRp
bmdzKQoreworICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShzZXR0aW5ncy5tX3dpZHRoKQorICAg
ICAgICAmJiBkZWNvZGVyLmRlY29kZShzZXR0aW5ncy5tX2hlaWdodCkKKyAgICAgICAgJiYgZGVj
b2Rlci5kZWNvZGUoc2V0dGluZ3MubV9hc3BlY3RSYXRpbykKKyAgICAgICAgJiYgZGVjb2Rlci5k
ZWNvZGUoc2V0dGluZ3MubV9mcmFtZVJhdGUpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKHNl
dHRpbmdzLm1fdm9sdW1lKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShzZXR0aW5ncy5tX3Nh
bXBsZVJhdGUpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKHNldHRpbmdzLm1fc2FtcGxlU2l6
ZSkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoc2V0dGluZ3MubV9lY2hvQ2FuY2VsbGF0aW9u
KQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShzZXR0aW5ncy5tX2RldmljZUlkKQorICAgICAg
ICAmJiBkZWNvZGVyLmRlY29kZShzZXR0aW5ncy5tX2dyb3VwSWQpCisgICAgICAgICYmIGRlY29k
ZXIuZGVjb2RlKHNldHRpbmdzLm1fc3VwcG9ydGVkQ29uc3RyYWludHMpCisgICAgICAgICYmIGRl
Y29kZXIuZGVjb2RlRW51bShzZXR0aW5ncy5tX2ZhY2luZ01vZGUpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3NfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaApp
bmRleCBiZmI1NGU2ZDYwOTQ2YTc2MjdkMjRmNjczNzA4MTlkNTA1OGZjZGYyLi5mYWY5NGJlNmE3
MTcwMjFkNmQyYmFlNmMzNTljMmRhMzdiYjIwMGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3Ry
YWludHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaApAQCAtOTYsNiArOTYsOSBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZUZvckNvbnN0cmFpbnQoTWVk
aWFDb25zdHJhaW50VHlwZSk7CiAgICAgc3RhdGljIE1lZGlhQ29uc3RyYWludFR5cGUgY29uc3Ry
YWludEZyb21OYW1lKGNvbnN0IFN0cmluZyYpOwogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBv
cnRlZENvbnN0cmFpbnRzJik7CisKIHByaXZhdGU6CiAgICAgYm9vbCBtX3N1cHBvcnRzV2lkdGgg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9zdXBwb3J0c0hlaWdodCB7IGZhbHNlIH07CkBAIC0xMTAs
NiArMTEzLDM4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3N1cHBvcnRzR3JvdXBJZCB7IGZhbHNl
IH07CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBSZWFsdGltZU1lZGlhU291
cmNlU3VwcG9ydGVkQ29uc3RyYWludHM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
eworICAgIGVuY29kZXIgPDwgbV9zdXBwb3J0c1dpZHRoCisgICAgICAgIDw8IG1fc3VwcG9ydHNI
ZWlnaHQKKyAgICAgICAgPDwgbV9zdXBwb3J0c0FzcGVjdFJhdGlvCisgICAgICAgIDw8IG1fc3Vw
cG9ydHNGcmFtZVJhdGUKKyAgICAgICAgPDwgbV9zdXBwb3J0c0ZhY2luZ01vZGUKKyAgICAgICAg
PDwgbV9zdXBwb3J0c1ZvbHVtZQorICAgICAgICA8PCBtX3N1cHBvcnRzU2FtcGxlUmF0ZQorICAg
ICAgICA8PCBtX3N1cHBvcnRzU2FtcGxlU2l6ZQorICAgICAgICA8PCBtX3N1cHBvcnRzRWNob0Nh
bmNlbGxhdGlvbgorICAgICAgICA8PCBtX3N1cHBvcnRzRGV2aWNlSWQKKyAgICAgICAgPDwgbV9z
dXBwb3J0c0dyb3VwSWQ7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+Citib29sIFJlYWx0
aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50czo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIsIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgY29uc3RyYWludHMp
Cit7CisgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKGNvbnN0cmFpbnRzLm1fc3VwcG9ydHNXaWR0
aCkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uc3RyYWludHMubV9zdXBwb3J0c0hlaWdo
dCkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uc3RyYWludHMubV9zdXBwb3J0c0FzcGVj
dFJhdGlvKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25zdHJhaW50cy5tX3N1cHBvcnRz
RnJhbWVSYXRlKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25zdHJhaW50cy5tX3N1cHBv
cnRzRmFjaW5nTW9kZSkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uc3RyYWludHMubV9z
dXBwb3J0c1ZvbHVtZSkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uc3RyYWludHMubV9z
dXBwb3J0c1NhbXBsZVJhdGUpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbnN0cmFpbnRz
Lm1fc3VwcG9ydHNTYW1wbGVTaXplKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25zdHJh
aW50cy5tX3N1cHBvcnRzRWNob0NhbmNlbGxhdGlvbikKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNv
ZGUoY29uc3RyYWludHMubV9zdXBwb3J0c0RldmljZUlkKQorICAgICAgICAmJiBkZWNvZGVyLmRl
Y29kZShjb25zdHJhaW50cy5tX3N1cHBvcnRzR3JvdXBJZCk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDkwZjZlYmI0ODdh
YWZiMzg1ODNlMjZmMmJiMTlkNTRkNzIwYTE3ZjYuLjg4NDhjMGYwMmNhOTZlZTI0NWQ5ZDA1YmIw
ODIzNTAwMzg1Yjk4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwCkBAIC0yMzQ4LDQ1ICsyMzQ4LDE2IEBAIGJvb2wgQXJndW1lbnRDb2Rl
cjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFdlYkNv
cmU6OlJlCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIHZvaWQgQXJndW1lbnRDb2RlcjxNZWRp
YUNvbnN0cmFpbnRzRGF0YT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3Jl
OjpNZWRpYUNvbnN0cmFpbnRzRGF0YSYgY29uc3RyYWludCkKIHsKLSAgICBlbmNvZGVyIDw8IGNv
bnN0cmFpbnQubWFuZGF0b3J5Q29uc3RyYWludHM7Ci0KLSAgICBhdXRvJiBhZHZhbmNlZENvbnN0
cmFpbnRzID0gY29uc3RyYWludC5hZHZhbmNlZENvbnN0cmFpbnRzOwotICAgIGVuY29kZXIgPDwg
c3RhdGljX2Nhc3Q8dWludDY0X3Q+KGFkdmFuY2VkQ29uc3RyYWludHMuc2l6ZSgpKTsKLSAgICBm
b3IgKGNvbnN0IGF1dG8mIGFkdmFuY2VkQ29uc3RyYWludCA6IGFkdmFuY2VkQ29uc3RyYWludHMp
Ci0gICAgICAgIGVuY29kZXIgPDwgYWR2YW5jZWRDb25zdHJhaW50OwotCi0gICAgZW5jb2RlciA8
PCBjb25zdHJhaW50LmlzVmFsaWQ7CisgICAgZW5jb2RlciA8PCBjb25zdHJhaW50Lm1hbmRhdG9y
eUNvbnN0cmFpbnRzCisgICAgICAgIDw8IGNvbnN0cmFpbnQuYWR2YW5jZWRDb25zdHJhaW50cwor
ICAgICAgICA8PCBjb25zdHJhaW50LmlzVmFsaWQ7CiB9CiAKIGJvb2wgQXJndW1lbnRDb2RlcjxN
ZWRpYUNvbnN0cmFpbnRzRGF0YT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzRGF0YSYgY29uc3RyYWludHMpCiB7Ci0gICAgTWVkaWFUcmFja0NvbnN0
cmFpbnRTZXRNYXAgbWFuZGF0b3J5Q29uc3RyYWludHM7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShtYW5kYXRvcnlDb25zdHJhaW50cykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHVp
bnQ2NF90IGFkdmFuY2VkQ291bnQ7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShhZHZhbmNlZENv
dW50KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgVmVjdG9yPE1lZGlhVHJhY2tDb25z
dHJhaW50U2V0TWFwPiBhZHZhbmNlZENvbnN0cmFpbnRzOwotICAgIGFkdmFuY2VkQ29uc3RyYWlu
dHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShhZHZhbmNlZENvdW50KTsKLSAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGFkdmFuY2VkQ291bnQ7ICsraSkgewotICAgICAgICBNZWRpYVRyYWNrQ29u
c3RyYWludFNldE1hcCBtYXA7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWFwKSkKLSAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBhZHZhbmNlZENvbnN0cmFpbnRzLnVu
Y2hlY2tlZEFwcGVuZChXVEZNb3ZlKG1hcCkpOwotICAgIH0KLQotICAgIGJvb2wgaXNWYWxpZDsK
LSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGlzVmFsaWQpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICBjb25zdHJhaW50cy5tYW5kYXRvcnlDb25zdHJhaW50cyA9IFdURk1vdmUobWFuZGF0
b3J5Q29uc3RyYWludHMpOwotICAgIGNvbnN0cmFpbnRzLmFkdmFuY2VkQ29uc3RyYWludHMgPSBX
VEZNb3ZlKGFkdmFuY2VkQ29uc3RyYWludHMpOwotICAgIGNvbnN0cmFpbnRzLmlzVmFsaWQgPSBp
c1ZhbGlkOwotCi0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKGNv
bnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29k
ZShjb25zdHJhaW50cy5hZHZhbmNlZENvbnN0cmFpbnRzKQorICAgICAgICAmJiBkZWNvZGVyLmRl
Y29kZShjb25zdHJhaW50cy5pc1ZhbGlkKTsKIH0KIAogdm9pZCBBcmd1bWVudENvZGVyPENhcHR1
cmVEZXZpY2U+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVy
ZURldmljZSYgZGV2aWNlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304360</attachid>
            <date>2017-03-14 00:01:07 -0700</date>
            <delta_ts>2017-03-14 00:01:07 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-169567-20170314000105.patch</filename>
            <type>text/plain</type>
            <size>16709</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzODcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDYxOTMwMmI1NTgwM2QzOTBmYzRiM2Nl
ZTllY2Q1Y2NiYmExNzI3OWIuLjI4YWU5ZTU3ODkxNTZhNDg0NDEyNjVlNDQ0YTNjMWQyNmYyYTA4
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDMtMTMgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBjbGFzc2VzIHVzZWQgYnkgTWVkaWEgU3RyZWFt
IGVuY29kZS9kZWNvZGUgZnJpZW5kbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2OTU2NworCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNv
bi4KKworICAgICAgICAqIHd0Zi9NZWRpYVRpbWUuaDoKKyAgICAgICAgKFdURjo6TWVkaWFUaW1l
OjplbmNvZGUpOgorICAgICAgICAoV1RGOjpNZWRpYVRpbWU6OmRlY29kZSk6CisKIDIwMTctMDMt
MTMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW1dU
Rl0gQ2xlYW4gdXAgUnVuTG9vcCBhbmQgV29ya1F1ZXVlIHdpdGggU2Vjb25kcyBhbmQgRnVuY3Rp
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAyZjYyMGNiMzFiMDg3ODhlZDcyMzQ1YWMxNGRmZWQ2ZTcxYWY0MTYz
Li4wMTliYzFkYTJkM2NmMWI2ZGIzN2E3NTM4M2VhOWRhZTFjY2Y5NTliIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMTctMDMtMTMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CisKKyAgICAgICAgTWFrZSBjbGFzc2VzIHVzZWQgYnkgTWVkaWEgU3RyZWFtIGVuY29kZS9k
ZWNvZGUgZnJpZW5kbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2OTU2NworCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAg
ICAgICBBZGQgZW5jb2RlKCkgYW5kIGRlY29kZSgpIG1ldGhvZHMgYW5kIGltcGxlbWVudGF0aW9u
cyB0byBhIHZhcmlldHkgb2YgbWVkaWEgc3RyZWFtIHJlbGF0ZWQgY2xhc3Nlcy4KKworICAgICAg
ICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjo6ZW5jb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6d2lkdGgpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpzZXRXaWR0aCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OmhlaWdodCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OnNldEhlaWdodCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OnNhbXBsZVJhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpzZXRTYW1w
bGVSYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6
c2FtcGxlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3M6OnNldFNhbXBsZVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzOjplbmNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzOjplbmNvZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzOjpkZWNv
ZGUpOgorCiAyMDE3LTAzLTA2ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlZmFjdG9yOiBBbGxvdyBXZWJLaXQyIHRvIG92ZXJyaWRlIHRoZSBjcmVhdGlvbiBv
ZiBSZWFsdGltZU1lZGlhU291cmNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGNlNmZmNjYwMjU2NTExMzg1ZmQw
ODg3ZjM0NDYxNjI5NmM2YTkwNmYuLmQzNWIzY2JmNDA0YWQwZmZkZDJlOTRhNTI0MzBjMTE1MTBl
N2VkMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNy0wMy0xMyAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIGNsYXNzZXMgdXNlZCBieSBN
ZWRpYSBTdHJlYW0gZW5jb2RlL2RlY29kZSBmcmllbmRseQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5NTY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RXJpYyBDYXJsc29uLgorCisgICAgICAgIE1ha2UgdGhlIGVuY29kZXIgYW5kIGRlY29kZXIgZm9y
IE1lZGlhQ29uc3RyYWludHNEYXRhIGEgbGl0dGxlIGxlc3Mgd29yZHkuCisKKyAgICAgICAgKiBT
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxNZWRpYUNvbnN0cmFpbnRzRGF0YT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8TWVkaWFDb25zdHJhaW50c0RhdGE+OjpkZWNvZGUpOgorCiAyMDE3LTAzLTA2ICBK
ZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9yOiBBbGxv
dyBXZWJLaXQyIHRvIG92ZXJyaWRlIHRoZSBjcmVhdGlvbiBvZiBSZWFsdGltZU1lZGlhU291cmNl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVkaWFUaW1lLmggYi9Tb3VyY2UvV1RGL3d0
Zi9NZWRpYVRpbWUuaAppbmRleCBkN2E3ZjMxNmIzYmVkYzUxNDFjZDM4ZGEwMzVhMjcxZTBiMGI1
OTU4Li5hN2I3NDU3ZjJiYWJhZWVmYjM3NjU0ZDQxMzZhN2IwZTNmNWM3ODMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9NZWRpYVRpbWUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZWRpYVRp
bWUuaApAQCAtMTMwLDYgKzEzMCw5IEBAIHB1YmxpYzoKIAogICAgIE1lZGlhVGltZSB0b1RpbWVT
Y2FsZSh1aW50MzJfdCwgUm91bmRpbmdGbGFncyA9IFJvdW5kaW5nRmxhZ3M6OkhhbGZBd2F5RnJv
bVplcm8pIGNvbnN0OwogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUo
RW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBib29s
IGRlY29kZShEZWNvZGVyJiwgTWVkaWFUaW1lJik7CisKIHByaXZhdGU6CiAgICAgdm9pZCBzZXRU
aW1lU2NhbGUodWludDMyX3QsIFJvdW5kaW5nRmxhZ3MgPSBSb3VuZGluZ0ZsYWdzOjpIYWxmQXdh
eUZyb21aZXJvKTsKIApAQCAtMTQ0LDYgKzE0NywyMSBAQCBwcml2YXRlOgogaW5saW5lIE1lZGlh
VGltZSBvcGVyYXRvciooaW50MzJfdCBsaHMsIGNvbnN0IE1lZGlhVGltZSYgcmhzKSB7IHJldHVy
biByaHMub3BlcmF0b3IqKGxocyk7IH0KIAogV1RGX0VYUE9SVF9QUklWQVRFIGV4dGVybiBNZWRp
YVRpbWUgYWJzKGNvbnN0IE1lZGlhVGltZSYgcmhzKTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4KK3ZvaWQgTWVkaWFUaW1lOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAg
ICBlbmNvZGVyIDw8IG1fdGltZVZhbHVlIDw8IG1fdGltZVNjYWxlIDw8IG1fdGltZUZsYWdzOwor
fQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorYm9vbCBNZWRpYVRpbWU6OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyLCBNZWRpYVRpbWUmIHRpbWUpCit7CisgICAgcmV0dXJuIGRlY29kZXIuZGVj
b2RlKHRpbWUubV90aW1lVmFsdWUpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKHRpbWUubV90
aW1lU2NhbGUpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKHRpbWUubV90aW1lRmxhZ3MpOwor
fQorCiB9CiAKIHVzaW5nIFdURjo6TWVkaWFUaW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vbWFjL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oCmlu
ZGV4IGVjNWI2NzI5NDMxODMxYjFmNWRlMDQ4NWFkZmYwYTY5MmExZGE1NjQuLjNkNTRmNmIwOGU5
ZTdiZGVmYjcyMGViZWNlNDViNWM3NjZlY2QxNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL21hYy9DQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmgK
QEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1ib29sIG9wZXJhdG9y
PT0oY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uJiwgY29uc3QgQXVkaW9TdHJlYW1C
YXNpY0Rlc2NyaXB0aW9uJik7CitXRUJDT1JFX0VYUE9SVCBib29sIG9wZXJhdG9yPT0oY29uc3Qg
QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uJiwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2Ny
aXB0aW9uJik7CiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNE
ZXNjcmlwdGlvbiYgYSwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uJiBiKSB7IHJl
dHVybiAhKGEgPT0gYik7IH0KIAogY2xhc3MgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIGZpbmFs
IDogcHVibGljIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gewpAQCAtNzYsNiArNzYsOSBAQCBwdWJs
aWM6CiAgICAgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uJiBzdHJlYW1EZXNjcmlw
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc3RyZWFtRGVzY3JpcHRpb247IH0KICAgICBBdWRpb1N0
cmVhbUJhc2ljRGVzY3JpcHRpb24mIHN0cmVhbURlc2NyaXB0aW9uKCkgeyByZXR1cm4gbV9zdHJl
YW1EZXNjcmlwdGlvbjsgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBi
b29sIGRlY29kZShEZWNvZGVyJiwgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uJik7CisKIHByaXZh
dGU6CiAgICAgdm9pZCBjYWxjdWxhdGVGb3JtYXQoKTsKIApAQCAtODQsNiArODcsMzYgQEAgcHJp
dmF0ZToKICAgICBtdXRhYmxlIFBDTUZvcm1hdCBtX2Zvcm1hdCB7IE5vbmUgfTsKIH07CiAKK3Rl
bXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3N0cmVhbURl
c2NyaXB0aW9uLm1TYW1wbGVSYXRlCisgICAgICAgIDw8IG1fc3RyZWFtRGVzY3JpcHRpb24ubUZv
cm1hdElECisgICAgICAgIDw8IG1fc3RyZWFtRGVzY3JpcHRpb24ubUZvcm1hdEZsYWdzCisgICAg
ICAgIDw8IG1fc3RyZWFtRGVzY3JpcHRpb24ubUJ5dGVzUGVyUGFja2V0CisgICAgICAgIDw8IG1f
c3RyZWFtRGVzY3JpcHRpb24ubUZyYW1lc1BlclBhY2tldAorICAgICAgICA8PCBtX3N0cmVhbURl
c2NyaXB0aW9uLm1CeXRlc1BlckZyYW1lCisgICAgICAgIDw8IG1fc3RyZWFtRGVzY3JpcHRpb24u
bUNoYW5uZWxzUGVyRnJhbWUKKyAgICAgICAgPDwgbV9zdHJlYW1EZXNjcmlwdGlvbi5tQml0c1Bl
ckNoYW5uZWwKKyAgICAgICAgPDwgbV9zdHJlYW1EZXNjcmlwdGlvbi5tUmVzZXJ2ZWQKKyAgICAg
ICAgPDwgbV9mb3JtYXQ7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+Citib29sIENBQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIENBQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24pCit7CisgICAgcmV0dXJuIGRlY29kZXIuZGVjb2Rl
KGRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRpb24ubVNhbXBsZVJhdGUpCisgICAgICAgICYm
IGRlY29kZXIuZGVjb2RlKGRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRpb24ubUZvcm1hdElE
KQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShkZXNjcmlwdGlvbi5tX3N0cmVhbURlc2NyaXB0
aW9uLm1Gb3JtYXRGbGFncykKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoZGVzY3JpcHRpb24u
bV9zdHJlYW1EZXNjcmlwdGlvbi5tQnl0ZXNQZXJQYWNrZXQpCisgICAgICAgICYmIGRlY29kZXIu
ZGVjb2RlKGRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRpb24ubUZyYW1lc1BlclBhY2tldCkK
KyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoZGVzY3JpcHRpb24ubV9zdHJlYW1EZXNjcmlwdGlv
bi5tQnl0ZXNQZXJGcmFtZSkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoZGVzY3JpcHRpb24u
bV9zdHJlYW1EZXNjcmlwdGlvbi5tQ2hhbm5lbHNQZXJGcmFtZSkKKyAgICAgICAgJiYgZGVjb2Rl
ci5kZWNvZGUoZGVzY3JpcHRpb24ubV9zdHJlYW1EZXNjcmlwdGlvbi5tQml0c1BlckNoYW5uZWwp
CisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGRlc2NyaXB0aW9uLm1fc3RyZWFtRGVzY3JpcHRp
b24ubVJlc2VydmVkKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShkZXNjcmlwdGlvbi5tX2Zv
cm1hdCk7Cit9CisKIGlubGluZSBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gdG9DQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24oY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24p
CiB7CiAgICAgQVNTRVJUKGRlc2NyaXB0aW9uLnBsYXRmb3JtRGVzY3JpcHRpb24oKS50eXBlID09
IFBsYXRmb3JtRGVzY3JpcHRpb246OkNBQXVkaW9TdHJlYW1CYXNpY1R5cGUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZS5oCmluZGV4
IDg2MTUyYmY3ZWUyZGNhMWE3MGFmYTU1MWZlNGM0MDg2MzRkZDZjNDIuLjc3NTFlMjAwNjhmM2Y1
YzA1ZWVjYWYyOTVhZGU1Y2Q3NGU1ZDdlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlLmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVi
bGljOgogCiAgICAgYm9vbCBlbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9lbmFibGVkOyB9CiAg
ICAgdm9pZCBzZXRFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2VuYWJsZWQgPSBlbmFibGVkOyB9
CisKIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcGVyc2lzdGVudElkOwogICAgIERldmljZVR5cGUg
bV90eXBlIHsgRGV2aWNlVHlwZTo6VW5rbm93biB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MuaAppbmRleCA3YjVkYzcxN2M2N2ZiNDhlZTlkYzg1NGY2MTYwZjkwOGU3ZGI0NjNkLi5i
NjEyZTMyNmE4ZTNiYzdlNmU3YmNkNmM0NGZiZTAxMDMxOTFmZDY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MuaApAQCAtNDksMTIgKzQ5LDEyIEBAIHB1YmxpYzoKICAgICB9CiAK
ICAgICBib29sIHN1cHBvcnRzV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3N1cHBvcnRlZENvbnN0
cmFpbnRzLnN1cHBvcnRzV2lkdGgoKTsgfQotICAgIHVuc2lnbmVkIGxvbmcgd2lkdGgoKSBjb25z
dCB7IHJldHVybiBtX3dpZHRoOyB9Ci0gICAgdm9pZCBzZXRXaWR0aCh1bnNpZ25lZCBsb25nIHdp
ZHRoKSB7IG1fd2lkdGggPSB3aWR0aDsgfQorICAgIHVpbnQzMl90IHdpZHRoKCkgY29uc3QgeyBy
ZXR1cm4gbV93aWR0aDsgfQorICAgIHZvaWQgc2V0V2lkdGgodWludDMyX3Qgd2lkdGgpIHsgbV93
aWR0aCA9IHdpZHRoOyB9CiAKICAgICBib29sIHN1cHBvcnRzSGVpZ2h0KCkgY29uc3QgeyByZXR1
cm4gbV9zdXBwb3J0ZWRDb25zdHJhaW50cy5zdXBwb3J0c0hlaWdodCgpOyB9Ci0gICAgdW5zaWdu
ZWQgbG9uZyBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2hlaWdodDsgfQotICAgIHZvaWQgc2V0
SGVpZ2h0KHVuc2lnbmVkIGxvbmcgaGVpZ2h0KSB7IG1faGVpZ2h0ID0gaGVpZ2h0OyB9CisgICAg
dWludDMyX3QgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9oZWlnaHQ7IH0KKyAgICB2b2lkIHNl
dEhlaWdodCh1aW50MzJfdCBoZWlnaHQpIHsgbV9oZWlnaHQgPSBoZWlnaHQ7IH0KIAogICAgIGJv
b2wgc3VwcG9ydHNBc3BlY3RSYXRpbygpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9ydGVkQ29uc3Ry
YWludHMuc3VwcG9ydHNBc3BlY3RSYXRpbygpOyB9CiAgICAgZmxvYXQgYXNwZWN0UmF0aW8oKSBj
b25zdCB7IHJldHVybiBtX2FzcGVjdFJhdGlvOyB9CkBAIC03MywxMiArNzMsMTIgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0Vm9sdW1lKGRvdWJsZSB2b2x1bWUpIHsgbV92b2x1bWUgPSB2b2x1bWU7
IH0KIAogICAgIGJvb2wgc3VwcG9ydHNTYW1wbGVSYXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdXBw
b3J0ZWRDb25zdHJhaW50cy5zdXBwb3J0c1NhbXBsZVJhdGUoKTsgfQotICAgIHVuc2lnbmVkIGxv
bmcgc2FtcGxlUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2FtcGxlUmF0ZTsgfQotICAgIHZvaWQg
c2V0U2FtcGxlUmF0ZSh1bnNpZ25lZCBsb25nIHNhbXBsZVJhdGUpIHsgbV9zYW1wbGVSYXRlID0g
c2FtcGxlUmF0ZTsgfQorICAgIHVpbnQzMl90IHNhbXBsZVJhdGUoKSBjb25zdCB7IHJldHVybiBt
X3NhbXBsZVJhdGU7IH0KKyAgICB2b2lkIHNldFNhbXBsZVJhdGUodWludDMyX3Qgc2FtcGxlUmF0
ZSkgeyBtX3NhbXBsZVJhdGUgPSBzYW1wbGVSYXRlOyB9CiAKICAgICBib29sIHN1cHBvcnRzU2Ft
cGxlU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9ydGVkQ29uc3RyYWludHMuc3VwcG9ydHNT
YW1wbGVTaXplKCk7IH0KLSAgICB1bnNpZ25lZCBsb25nIHNhbXBsZVNpemUoKSBjb25zdCB7IHJl
dHVybiBtX3NhbXBsZVNpemU7IH0KLSAgICB2b2lkIHNldFNhbXBsZVNpemUodW5zaWduZWQgbG9u
ZyBzYW1wbGVTaXplKSB7IG1fc2FtcGxlU2l6ZSA9IHNhbXBsZVNpemU7IH0KKyAgICB1aW50MzJf
dCBzYW1wbGVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9zYW1wbGVTaXplOyB9CisgICAgdm9pZCBz
ZXRTYW1wbGVTaXplKHVpbnQzMl90IHNhbXBsZVNpemUpIHsgbV9zYW1wbGVTaXplID0gc2FtcGxl
U2l6ZTsgfQogCiAgICAgYm9vbCBzdXBwb3J0c0VjaG9DYW5jZWxsYXRpb24oKSBjb25zdCB7IHJl
dHVybiBtX3N1cHBvcnRlZENvbnN0cmFpbnRzLnN1cHBvcnRzRWNob0NhbmNlbGxhdGlvbigpOyB9
CiAgICAgYm9vbCBlY2hvQ2FuY2VsbGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9lY2hvQ2FuY2Vs
bGF0aW9uOyB9CkBAIC05NCwxNSArOTQsMTggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRTdXBw
b3J0ZWRDb25zdHJhaXRzKGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJh
aW50cyYgc3VwcG9ydGVkQ29uc3RyYWludHMpIHsgbV9zdXBwb3J0ZWRDb25zdHJhaW50cyA9IHN1
cHBvcnRlZENvbnN0cmFpbnRzOyB9CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmKTsK
KwogcHJpdmF0ZToKLSAgICB1bnNpZ25lZCBsb25nIG1fd2lkdGggeyAwIH07Ci0gICAgdW5zaWdu
ZWQgbG9uZyBtX2hlaWdodCB7IDAgfTsKKyAgICB1aW50MzJfdCBtX3dpZHRoIHsgMCB9OworICAg
IHVpbnQzMl90IG1faGVpZ2h0IHsgMCB9OwogICAgIGZsb2F0IG1fYXNwZWN0UmF0aW8geyAwIH07
CiAgICAgZmxvYXQgbV9mcmFtZVJhdGUgeyAwIH07CiAgICAgVmlkZW9GYWNpbmdNb2RlIG1fZmFj
aW5nTW9kZSB7IFVua25vd24gfTsKICAgICBkb3VibGUgbV92b2x1bWUgeyAwIH07Ci0gICAgdW5z
aWduZWQgbG9uZyBtX3NhbXBsZVJhdGUgeyAwIH07Ci0gICAgdW5zaWduZWQgbG9uZyBtX3NhbXBs
ZVNpemUgeyAwIH07CisgICAgdWludDMyX3QgbV9zYW1wbGVSYXRlIHsgMCB9OworICAgIHVpbnQz
Ml90IG1fc2FtcGxlU2l6ZSB7IDAgfTsKICAgICBib29sIG1fZWNob0NhbmNlbGxhdGlvbiB7IDAg
fTsKIAogICAgIEF0b21pY1N0cmluZyBtX2RldmljZUlkOwpAQCAtMTExLDYgKzExNCw0MCBAQCBw
cml2YXRlOgogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBtX3N1
cHBvcnRlZENvbnN0cmFpbnRzOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQg
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fd2lkdGgKKyAgICAgICAgPDwgbV9oZWlnaHQKKyAgICAg
ICAgPDwgbV9hc3BlY3RSYXRpbworICAgICAgICA8PCBtX2ZyYW1lUmF0ZQorICAgICAgICA8PCBt
X3ZvbHVtZQorICAgICAgICA8PCBtX3NhbXBsZVJhdGUKKyAgICAgICAgPDwgbV9zYW1wbGVTaXpl
CisgICAgICAgIDw8IG1fZWNob0NhbmNlbGxhdGlvbgorICAgICAgICA8PCBtX2RldmljZUlkCisg
ICAgICAgIDw8IG1fZ3JvdXBJZAorICAgICAgICA8PCBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwor
ICAgIGVuY29kZXIuZW5jb2RlRW51bShtX2ZhY2luZ01vZGUpOworfQorCit0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPgorYm9vbCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyLCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQorewor
ICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShzZXR0aW5ncy5tX3dpZHRoKQorICAgICAgICAmJiBk
ZWNvZGVyLmRlY29kZShzZXR0aW5ncy5tX2hlaWdodCkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNv
ZGUoc2V0dGluZ3MubV9hc3BlY3RSYXRpbykKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoc2V0
dGluZ3MubV9mcmFtZVJhdGUpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKHNldHRpbmdzLm1f
dm9sdW1lKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShzZXR0aW5ncy5tX3NhbXBsZVJhdGUp
CisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKHNldHRpbmdzLm1fc2FtcGxlU2l6ZSkKKyAgICAg
ICAgJiYgZGVjb2Rlci5kZWNvZGUoc2V0dGluZ3MubV9lY2hvQ2FuY2VsbGF0aW9uKQorICAgICAg
ICAmJiBkZWNvZGVyLmRlY29kZShzZXR0aW5ncy5tX2RldmljZUlkKQorICAgICAgICAmJiBkZWNv
ZGVyLmRlY29kZShzZXR0aW5ncy5tX2dyb3VwSWQpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2Rl
KHNldHRpbmdzLm1fc3VwcG9ydGVkQ29uc3RyYWludHMpCisgICAgICAgICYmIGRlY29kZXIuZGVj
b2RlRW51bShzZXR0aW5ncy5tX2ZhY2luZ01vZGUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZiAvLyBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3NfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZVN1cHBvcnRlZENvbnN0cmFpbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaAppbmRleCBiZmI1
NGU2ZDYwOTQ2YTc2MjdkMjRmNjczNzA4MTlkNTA1OGZjZGYyLi5mYWY5NGJlNmE3MTcwMjFkNmQy
YmFlNmMzNTljMmRhMzdiYjIwMGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuaApAQCAtOTYsNiArOTYsOSBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZUZvckNvbnN0cmFpbnQoTWVkaWFDb25zdHJh
aW50VHlwZSk7CiAgICAgc3RhdGljIE1lZGlhQ29uc3RyYWludFR5cGUgY29uc3RyYWludEZyb21O
YW1lKGNvbnN0IFN0cmluZyYpOwogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBib29sIGRlY29kZShEZWNvZGVyJiwgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0
cmFpbnRzJik7CisKIHByaXZhdGU6CiAgICAgYm9vbCBtX3N1cHBvcnRzV2lkdGggeyBmYWxzZSB9
OwogICAgIGJvb2wgbV9zdXBwb3J0c0hlaWdodCB7IGZhbHNlIH07CkBAIC0xMTAsNiArMTEzLDM4
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3N1cHBvcnRzR3JvdXBJZCB7IGZhbHNlIH07CiB9Owog
Cit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBSZWFsdGltZU1lZGlhU291cmNlU3VwcG9y
dGVkQ29uc3RyYWludHM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVu
Y29kZXIgPDwgbV9zdXBwb3J0c1dpZHRoCisgICAgICAgIDw8IG1fc3VwcG9ydHNIZWlnaHQKKyAg
ICAgICAgPDwgbV9zdXBwb3J0c0FzcGVjdFJhdGlvCisgICAgICAgIDw8IG1fc3VwcG9ydHNGcmFt
ZVJhdGUKKyAgICAgICAgPDwgbV9zdXBwb3J0c0ZhY2luZ01vZGUKKyAgICAgICAgPDwgbV9zdXBw
b3J0c1ZvbHVtZQorICAgICAgICA8PCBtX3N1cHBvcnRzU2FtcGxlUmF0ZQorICAgICAgICA8PCBt
X3N1cHBvcnRzU2FtcGxlU2l6ZQorICAgICAgICA8PCBtX3N1cHBvcnRzRWNob0NhbmNlbGxhdGlv
bgorICAgICAgICA8PCBtX3N1cHBvcnRzRGV2aWNlSWQKKyAgICAgICAgPDwgbV9zdXBwb3J0c0dy
b3VwSWQ7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+Citib29sIFJlYWx0aW1lTWVkaWFT
b3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50czo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJlYWx0
aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgY29uc3RyYWludHMpCit7CisgICAg
cmV0dXJuIGRlY29kZXIuZGVjb2RlKGNvbnN0cmFpbnRzLm1fc3VwcG9ydHNXaWR0aCkKKyAgICAg
ICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uc3RyYWludHMubV9zdXBwb3J0c0hlaWdodCkKKyAgICAg
ICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uc3RyYWludHMubV9zdXBwb3J0c0FzcGVjdFJhdGlvKQor
ICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25zdHJhaW50cy5tX3N1cHBvcnRzRnJhbWVSYXRl
KQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25zdHJhaW50cy5tX3N1cHBvcnRzRmFjaW5n
TW9kZSkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uc3RyYWludHMubV9zdXBwb3J0c1Zv
bHVtZSkKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uc3RyYWludHMubV9zdXBwb3J0c1Nh
bXBsZVJhdGUpCisgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbnN0cmFpbnRzLm1fc3VwcG9y
dHNTYW1wbGVTaXplKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25zdHJhaW50cy5tX3N1
cHBvcnRzRWNob0NhbmNlbGxhdGlvbikKKyAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uc3Ry
YWludHMubV9zdXBwb3J0c0RldmljZUlkKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25z
dHJhaW50cy5tX3N1cHBvcnRzR3JvdXBJZCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDkwZjZlYmI0ODdhYWZiMzg1ODNl
MjZmMmJiMTlkNTRkNzIwYTE3ZjYuLjg4NDhjMGYwMmNhOTZlZTI0NWQ5ZDA1YmIwODIzNTAwMzg1
Yjk4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwCkBAIC0yMzQ4LDQ1ICsyMzQ4LDE2IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFdlYkNvcmU6OlJlCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIHZvaWQgQXJndW1lbnRDb2RlcjxNZWRpYUNvbnN0cmFp
bnRzRGF0YT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNv
bnN0cmFpbnRzRGF0YSYgY29uc3RyYWludCkKIHsKLSAgICBlbmNvZGVyIDw8IGNvbnN0cmFpbnQu
bWFuZGF0b3J5Q29uc3RyYWludHM7Ci0KLSAgICBhdXRvJiBhZHZhbmNlZENvbnN0cmFpbnRzID0g
Y29uc3RyYWludC5hZHZhbmNlZENvbnN0cmFpbnRzOwotICAgIGVuY29kZXIgPDwgc3RhdGljX2Nh
c3Q8dWludDY0X3Q+KGFkdmFuY2VkQ29uc3RyYWludHMuc2l6ZSgpKTsKLSAgICBmb3IgKGNvbnN0
IGF1dG8mIGFkdmFuY2VkQ29uc3RyYWludCA6IGFkdmFuY2VkQ29uc3RyYWludHMpCi0gICAgICAg
IGVuY29kZXIgPDwgYWR2YW5jZWRDb25zdHJhaW50OwotCi0gICAgZW5jb2RlciA8PCBjb25zdHJh
aW50LmlzVmFsaWQ7CisgICAgZW5jb2RlciA8PCBjb25zdHJhaW50Lm1hbmRhdG9yeUNvbnN0cmFp
bnRzCisgICAgICAgIDw8IGNvbnN0cmFpbnQuYWR2YW5jZWRDb25zdHJhaW50cworICAgICAgICA8
PCBjb25zdHJhaW50LmlzVmFsaWQ7CiB9CiAKIGJvb2wgQXJndW1lbnRDb2RlcjxNZWRpYUNvbnN0
cmFpbnRzRGF0YT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzRGF0YSYgY29uc3RyYWludHMpCiB7Ci0gICAgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRN
YXAgbWFuZGF0b3J5Q29uc3RyYWludHM7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShtYW5kYXRv
cnlDb25zdHJhaW50cykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHVpbnQ2NF90IGFk
dmFuY2VkQ291bnQ7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShhZHZhbmNlZENvdW50KSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgVmVjdG9yPE1lZGlhVHJhY2tDb25zdHJhaW50U2V0
TWFwPiBhZHZhbmNlZENvbnN0cmFpbnRzOwotICAgIGFkdmFuY2VkQ29uc3RyYWludHMucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eShhZHZhbmNlZENvdW50KTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGFkdmFuY2VkQ291bnQ7ICsraSkgewotICAgICAgICBNZWRpYVRyYWNrQ29uc3RyYWludFNl
dE1hcCBtYXA7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWFwKSkKLSAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgICAgICBhZHZhbmNlZENvbnN0cmFpbnRzLnVuY2hlY2tlZEFw
cGVuZChXVEZNb3ZlKG1hcCkpOwotICAgIH0KLQotICAgIGJvb2wgaXNWYWxpZDsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGlzVmFsaWQpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBj
b25zdHJhaW50cy5tYW5kYXRvcnlDb25zdHJhaW50cyA9IFdURk1vdmUobWFuZGF0b3J5Q29uc3Ry
YWludHMpOwotICAgIGNvbnN0cmFpbnRzLmFkdmFuY2VkQ29uc3RyYWludHMgPSBXVEZNb3ZlKGFk
dmFuY2VkQ29uc3RyYWludHMpOwotICAgIGNvbnN0cmFpbnRzLmlzVmFsaWQgPSBpc1ZhbGlkOwot
Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKGNvbnN0cmFpbnRz
Lm1hbmRhdG9yeUNvbnN0cmFpbnRzKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25zdHJh
aW50cy5hZHZhbmNlZENvbnN0cmFpbnRzKQorICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25z
dHJhaW50cy5pc1ZhbGlkKTsKIH0KIAogdm9pZCBBcmd1bWVudENvZGVyPENhcHR1cmVEZXZpY2U+
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYg
ZGV2aWNlKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>