<?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>205618</bug_id>
          
          <creation_ts>2019-12-28 13:59:02 -0800</creation_ts>
          <short_desc>Add support for iOS Simulator to ANGLE backend for WebGL</short_desc>
          <delta_ts>2020-10-26 13:10:33 -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>ANGLE</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>205483</dependson>
          <blocked>198948</blocked>
    
    <blocked>205781</blocked>
    
    <blocked>209139</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Kenneth Russell">kbr</assigned_to>
          <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>jdarpinian</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1601702</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2019-12-28 13:59:02 -0800</bug_when>
    <thetext>In bug 205483 WebKit&apos;s WebGL implementation was switched to use ANGLE on all Cocoa platforms except for the iOS simulator, because while IOSurfaces are now supported on that platform, [EAGLContext texImageIOSurface:...] is not. It looks like this can be emulated inside ANGLE&apos;s eglBindTexImage / eglReleaseTexImage entry points and thereby add support for the iOS simulator platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601938</commentid>
    <comment_count>1</comment_count>
      <attachid>386546</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2019-12-30 13:46:50 -0800</bug_when>
    <thetext>Created attachment 386546
Work-in-progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601939</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-12-30 13:47:27 -0800</bug_when>
    <thetext>Note that there are important steps to take when updating ANGLE. See http://trac.webkit.org/wiki/UpdatingANGLE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601940</commentid>
    <comment_count>3</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2019-12-30 13:48:18 -0800</bug_when>
    <thetext>This work-in-progress crashes the content process while running in the iOS Simulator. I&apos;m still trying to figure out how to attach an lldb to the process in the simulator - dino@ pointed out that I should try attaching to com.apple.WebKit.WebContent.Development .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601946</commentid>
    <comment_count>4</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2019-12-30 16:26:52 -0800</bug_when>
    <thetext>Inserted a 20 second pause during GraphicsContext3D creation and got Xcode to attach to the com.apple.WebKit.WebContent.Development process when the simulator was launched from the command line. Stack trace follows. Still debugging.

#0	0x0000000235e1c411 in gl::LogMessage::~LogMessage() at /Users/kbr/src/iOSWebKit/Source/ThirdParty/ANGLE/src/common/debug.cpp:183
#1	0x0000000235e1c1d5 in gl::LogMessage::~LogMessage() at /Users/kbr/src/iOSWebKit/Source/ThirdParty/ANGLE/src/common/debug.cpp:159
#2	0x0000000236287d43 in gl::Texture::getSamples(gl::TextureTarget, unsigned long) const at /Users/kbr/src/iOSWebKit/Source/ThirdParty/ANGLE/src/libANGLE/Texture.cpp:958
#3	0x000000023628d6d4 in gl::Texture::getAttachmentSamples(gl::ImageIndex const&amp;) const at /Users/kbr/src/iOSWebKit/Source/ThirdParty/ANGLE/src/libANGLE/Texture.cpp:1628
#4	0x0000000235d46058 in gl::FramebufferAttachment::getResourceSamples() const at /Users/kbr/src/iOSWebKit/Source/ThirdParty/ANGLE/src/libANGLE/FramebufferAttachment.h:256
#5	0x0000000235d40450 in gl::FramebufferAttachment::getSamples() const at /Users/kbr/src/iOSWebKit/Source/ThirdParty/ANGLE/src/libANGLE/FramebufferAttachment.h:250
#6	0x0000000235ffd73f in gl::(anonymous namespace)::CheckAttachmentSampleCompleteness(gl::Context const*, gl::FramebufferAttachment const&amp;, bool, Optional&lt;int&gt;*, Optional&lt;bool&gt;*, Optional&lt;int&gt;*) at /Users/kbr/src/iOSWebKit/Source/ThirdParty/ANGLE/src/libANGLE/Framebuffer.cpp:189
#7	0x0000000235ffc0ee in gl::Framebuffer::checkStatusWithGLFrontEnd(gl::Context const*) at /Users/kbr/src/iOSWebKit/Source/ThirdParty/ANGLE/src/libANGLE/Framebuffer.cpp:1117
#8	0x0000000235ffbcf7 in gl::Framebuffer::checkStatusImpl(gl::Context const*) at /Users/kbr/src/iOSWebKit/Source/ThirdParty/ANGLE/src/libANGLE/Framebuffer.cpp:1061
#9	0x0000000235dc90bf in gl::Framebuffer::checkStatus(gl::Context const*) at /Users/kbr/src/iOSWebKit/Source/ThirdParty/ANGLE/src/libANGLE/Framebuffer.h:283
#10	0x0000000235dc8ee2 in gl::Context::checkFramebufferStatus(unsigned int) at /Users/kbr/src/iOSWebKit/Source/ThirdParty/ANGLE/src/libANGLE/Context.cpp:6168
#11	0x0000000235eaea0f in gl::CheckFramebufferStatus(unsigned int) at /Users/kbr/src/iOSWebKit/Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_2_0_autogen.cpp:338
#12	0x00000002208af400 in WebCore::GraphicsContext3D::attachDepthAndStencilBufferIfNeeded(unsigned int, int, int) at /Users/kbr/src/iOSWebKit/Source/WebCore/platform/graphics/angle/GraphicsContext3DANGLE.cpp:251
#13	0x00000002208af207 in WebCore::GraphicsContext3D::reshapeFBOs(WebCore::IntSize const&amp;) at /Users/kbr/src/iOSWebKit/Source/WebCore/platform/graphics/angle/GraphicsContext3DANGLE.cpp:216
#14	0x00000002208b0b70 in WebCore::GraphicsContext3D::reshape(int, int) at /Users/kbr/src/iOSWebKit/Source/WebCore/platform/graphics/angle/GraphicsContext3DANGLE.cpp:578
#15	0x000000022320a03f in WebCore::WebGLRenderingContextBase::initializeNewContext() at /Users/kbr/src/iOSWebKit/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:783
#16	0x00000002231fd51d in WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase(WebCore::CanvasBase&amp;, WTF::Ref&lt;WebCore::GraphicsContext3D, WTF::DumbPtrTraits&lt;WebCore::GraphicsContext3D&gt; &gt;&amp;&amp;, WebCore::GraphicsContext3DAttributes) at /Users/kbr/src/iOSWebKit/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:653</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601948</commentid>
    <comment_count>5</comment_count>
      <attachid>386547</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2019-12-30 18:02:34 -0800</bug_when>
    <thetext>Created attachment 386547
Work-in-progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601949</commentid>
    <comment_count>6</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2019-12-30 18:03:49 -0800</bug_when>
    <thetext>Fixed the crash, which was caused by a mismatch between the use of the TEXTURE_2D and TEXTURE_RECTANGLE_ANGLE texture targets. (The same problem probably exists in the on-device iOS port.) Still doesn&apos;t render anything yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602037</commentid>
    <comment_count>7</comment_count>
      <attachid>386570</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2019-12-31 19:28:38 -0800</bug_when>
    <thetext>Created attachment 386570
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602038</commentid>
    <comment_count>8</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2019-12-31 19:29:04 -0800</bug_when>
    <thetext>The current patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602039</commentid>
    <comment_count>9</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2019-12-31 19:31:20 -0800</bug_when>
    <thetext>Thanks to more hints from dino@, the current patch seems to be working! At least, it did in a debug build just before rebasing on ToT. Will test more locally.

dino@, could you please help testing this on-device and making sure it doesn&apos;t break that code path? I believe it should only make that code path more correct, rather than regressing anything. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602573</commentid>
    <comment_count>10</comment_count>
      <attachid>386713</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-01-03 14:01:23 -0800</bug_when>
    <thetext>Created attachment 386713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602574</commentid>
    <comment_count>11</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2020-01-03 14:02:37 -0800</bug_when>
    <thetext>Fixed the compile failure on iOS and changed the newly-allocated enum for the usage hint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602862</commentid>
    <comment_count>12</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-01-05 09:59:04 -0800</bug_when>
    <thetext>Committed r254036: &lt;https://trac.webkit.org/changeset/254036&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602864</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-05 10:00:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/58325954&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386546</attachid>
            <date>2019-12-30 13:46:50 -0800</date>
            <delta_ts>2019-12-30 18:02:32 -0800</delta_ts>
            <desc>Work-in-progress</desc>
            <filename>bug-205618-20191230134649.patch</filename>
            <type>text/plain</type>
            <size>16799</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggOWU4ZDUxZWEzNjQ0ZWYxN2QyYTNmNGIxNzc3NDVlZjVjNjQwYTRjYi4uZjBhOTBhNGJlOWE2
YWZjMDJiM2I2NDMwYWYzMGRhNTAwNTFjYWUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTEyLTMwICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBpT1MgU2ltdWxhdG9yIHRvIEFO
R0xFIGJhY2tlbmQgZm9yIFdlYkdMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDU2MTgKKworICAgICAgICBFbXVsYXRlIG1pc3NpbmcgW0VBR0xDb250
ZXh0IHRleEltYWdlSU9TdXJmYWNlOi4uLl0gdXNpbmcgYQorICAgICAgICBjb21iaW5hdGlvbiBv
ZiB0ZXh0dXJlIHVwbG9hZHMgYW5kIHJlYWRiYWNrcyBmcm9tIGFuZCB0byB0aGUKKyAgICAgICAg
SU9TdXJmYWNlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogZXh0ZW5zaW9ucy9FR0xfQU5HTEVfaW9zdXJmYWNlX2NsaWVudF9idWZmZXIudHh0Ogor
ICAgICAgICAqIGluY2x1ZGUvRUdML2VnbGV4dF9hbmdsZS5oOgorICAgICAgICAqIHNyYy9saWJB
TkdMRS9yZW5kZXJlci9nbC9lYWdsL0Rpc3BsYXlFQUdMLm1tOgorICAgICAgICAocng6OkRpc3Bs
YXlFQUdMOjppbml0aWFsaXplKToKKyAgICAgICAgKiBzcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wv
ZWFnbC9JT1N1cmZhY2VTdXJmYWNlRUFHTC5oOgorICAgICAgICAqIHNyYy9saWJBTkdMRS9yZW5k
ZXJlci9nbC9lYWdsL0lPU3VyZmFjZVN1cmZhY2VFQUdMLm1tOgorICAgICAgICAocng6OklPU3Vy
ZmFjZVN1cmZhY2VFQUdMOjpJT1N1cmZhY2VTdXJmYWNlRUFHTCk6CisgICAgICAgIChyeDo6SU9T
dXJmYWNlU3VyZmFjZUVBR0w6OmJpbmRUZXhJbWFnZSk6CisgICAgICAgIChyeDo6SU9TdXJmYWNl
U3VyZmFjZUVBR0w6OnJlbGVhc2VUZXhJbWFnZSk6CisgICAgICAgIChyeDo6SU9TdXJmYWNlU3Vy
ZmFjZUVBR0w6OnZhbGlkYXRlQXR0cmlidXRlcyk6CisgICAgICAgIChyeDo6SU9TdXJmYWNlU3Vy
ZmFjZUVBR0w6OmNyZWF0ZURlZmF1bHRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChyeDo6SU9TdXJm
YWNlU3VyZmFjZUVBR0w6OmdldElPU3VyZmFjZUxvY2tPcHRpb25zIGNvbnN0KToKKyAgICAgICAg
KiBzcmMvbGliQU5HTEUvdmFsaWRhdGlvbkVHTC5jcHA6CisgICAgICAgIChlZ2w6OlZhbGlkYXRl
Q3JlYXRlUGJ1ZmZlckZyb21DbGllbnRCdWZmZXIpOgorCiAyMDE5LTEyLTI1ICBEZWFuIEphY2tz
b24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR0xdIEVuYWJsZSBBTkdMRSBieSBk
ZWZhdWx0IGZvciBDb2NvYSBwbGF0Zm9ybXMgKGV4Y2VwdCBzaW11bGF0b3IpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggMDMzNGQ4OTA2OTRiZjBlNTBmOTBmN2RjM2NkYzIyYzlhMDBmN2M5ZS4uN2ZmN2I4MTc4Yzky
OTFhOGIyZjExZmIzMDJkMWZhOTVkNTZlNWFjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBA
CisyMDE5LTEyLTMwICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciBpT1MgU2ltdWxhdG9yIHRvIEFOR0xFIGJhY2tlbmQgZm9yIFdl
YkdMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2
MTgKKworICAgICAgICBQYXNzIHVzYWdlIGhpbnRzICh1c2VkIG9ubHkgb24gaU9TIFNpbXVsYXRv
cikgd2hlbiBjcmVhdGluZworICAgICAgICBwYnVmZmVyIGZyb20gSU9TdXJmYWNlLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAo
T09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5t
bToKKyAgICAgICAgKC1bV2ViR0xMYXllciBhbGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdTdG9yZVdp
dGhTaXplOnVzaW5nQWxwaGE6XSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlk
ZW9UZXh0dXJlQ29waWVyQ1YuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9UZXh0dXJlQ29w
aWVyQ1Y6OmF0dGFjaElPU3VyZmFjZVRvVGV4dHVyZSk6CisKIDIwMTktMTItMzAgIEVyaWMgQ2Fy
bHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3JlYXRlIG1lZGlhIG1p
bWUgdHlwZSBjYWNoZSBiYXNlIGNsYXNzIHRvIHJlZHVjZSBkdXBsaWNhdGUgY29kZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvZXh0ZW5zaW9ucy9FR0xfQU5HTEVfaW9zdXJm
YWNlX2NsaWVudF9idWZmZXIudHh0IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvZXh0ZW5zaW9u
cy9FR0xfQU5HTEVfaW9zdXJmYWNlX2NsaWVudF9idWZmZXIudHh0CmluZGV4IDgyMDZlYWIzODk0
MmI0Y2Y2MzdlNDZlYWU2MjE1ZDdjZDI3Y2I4MzYuLmMwMWFiMDAyZDhjZjk2NGYyMDkxOTI2N2Zm
YWJkZDlkNmQ3MWQ0OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2V4dGVu
c2lvbnMvRUdMX0FOR0xFX2lvc3VyZmFjZV9jbGllbnRfYnVmZmVyLnR4dAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9leHRlbnNpb25zL0VHTF9BTkdMRV9pb3N1cmZhY2VfY2xpZW50X2J1
ZmZlci50eHQKQEAgLTIxLDcgKzIxLDcgQEAgU3RhdHVzCiAgICAgRHJhZnQKIAogVmVyc2lvbgot
ICAgIFZlcnNpb24gMywgQXVnIDEzLCAyMDE5CisgICAgVmVyc2lvbiA0LCBEZWMgMjgsIDIwMTkK
IAogTnVtYmVyCiAKQEAgLTUzLDYgKzUzLDcgQEAgTmV3IFRva2VucwogICAgICAgICBFR0xfVEVY
VFVSRV9SRUNUQU5HTEVfQU5HTEUgICAgMHgzNDVCCiAgICAgICAgIEVHTF9URVhUVVJFX1RZUEVf
QU5HTEUgICAgICAgICAweDM0NUMKICAgICAgICAgRUdMX1RFWFRVUkVfSU5URVJOQUxfRk9STUFU
X0FOR0xFIDB4MzQ1RAorICAgICAgICBFR0xfSU9TVVJGQUNFX1VTQUdFX0hJTlRfQU5HTEUgMHgz
NDhDCiAKIEFkZGl0aW9ucyB0byBDaGFwdGVyIDMgb2YgdGhlIEVHTCAxLjQgU3BlY2lmaWNhdGlv
biAoRUdMIEZ1bmN0aW9ucyBhbmQgRXJyb3JzKQogCkBAIC04OCw3ICs4OSwxNSBAQCBBZGRpdGlv
bnMgdG8gQ2hhcHRlciAzIG9mIHRoZSBFR0wgMS40IFNwZWNpZmljYXRpb24gKEVHTCBGdW5jdGlv
bnMgYW5kIEVycm9ycykKICAgICBFR0xfVEVYVFVSRV9JTlRFUk5BTF9GT1JNQVRfQU5HTEUgYXR0
cmlidXRlcyBtdXN0IGJlIG9uZSBvZiB0aGUKICAgICBjb21iaW5hdGlvbnMgbGlzdGVkIGluIHRh
YmxlIGVnbC5pb3N1cmZhY2UuZm9ybWF0cyBvciBhbgogICAgIEVHTF9CQURfUEFSQU1FVEVSIGlz
IGdlbmVyYXRlZC4gVGhlIGNvbWJpbmF0aW9uIG11c3QgYWxzbyBiZSBhIHZhbGlkCi0gICAgY29t
YmluYXRpb25zIGZvciBnbFRleEltYWdlMkQgb3IgRUdMX0JBRF9QQVJBTUVURVIgaXMgZ2VuZXJh
dGVkLiIKKyAgICBjb21iaW5hdGlvbnMgZm9yIGdsVGV4SW1hZ2UyRCBvciBFR0xfQkFEX1BBUkFN
RVRFUiBpcyBnZW5lcmF0ZWQuCisKKyAgICBUaGUgYXR0cmlidXRlIEVHTF9JT1NVUkZBQ0VfVVNB
R0VfSElOVF9BTkdMRSBtYXkgb3B0aW9uYWxseSBiZSBzcGVjaWZpZWQgYXMKKyAgICBhIGNvbWJp
bmF0aW9uIG9mIHRoZSBiaXRzIEVHTF9JT1NVUkZBQ0VfUkVBRF9ISU5UX0FOR0xFIGFuZAorICAg
IEVHTF9JT1NVUkZBQ0VfV1JJVEVfSElOVF9BTkdMRS4gT24gdGhlIGlPUyBTaW11bGF0b3IgcGxh
dGZvcm0sIHdoZXJlCisgICAgSU9TdXJmYWNlIHN1cHBvcnQgaXMgaW5jb21wbGV0ZSwgdGhlc2Ug
aGludHMgaW5kaWNhdGUgd2hldGhlciB0aGUgaW50ZW50IGlzCisgICAgdG8gcmVhZCBmcm9tIHRo
ZSBJT1N1cmZhY2UsIHdyaXRlIHRvIGl0LCBvciBib3RoLiBFeHBsaWNpdGx5IHBhc3NpbmcgMCBm
b3IKKyAgICB0aGlzIGF0dHJpYnV0ZSBpcyBlcXVpdmFsZW50IHRvIHNldHRpbmcgYm90aCB0aGUg
cmVhZCBhbmQgd3JpdGUgdXNhZ2UKKyAgICBiaXRzLiBUaGlzIGF0dHJpYnV0ZSBpcyBpZ25vcmVk
IG9uIG90aGVyIHBsYXRmb3Jtcy4iCiAKICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICBUZXh0
dXJlIFR5cGUgICAgICAgICAgICAgICBUZXh0dXJlIEludGVybmFsIEZvcm1hdApAQCAtMTIyLDMg
KzEzMSw0IEBAIFJldmlzaW9uIEhpc3RvcnkKICAgICBWZXJzaW9uIDEsIDIwMTcvMTIvMDYgLSBm
aXJzdCBkcmFmdC4KICAgICBWZXJzaW9uIDIsIDIwMTkvMDQvMDEgLSBBbGxvdyBNYWtlQ3VycmVu
dC4KICAgICBWZXJzaW9uIDMsIDIwMTkvMDgvMTMgLSBBbGxvdyBSR0IgaW50ZXJuYWwgZm9ybWF0
cworICAgIFZlcnNpb24gNCwgMjAxOS8xMi8yOCAtIEFkZCB1c2FnZSBoaW50CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL0VHTC9lZ2xleHRfYW5nbGUuaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvRUdML2VnbGV4dF9hbmdsZS5oCmluZGV4IDJj
M2JhNmJlZDRhZmQ5NDcyM2FlYTAyODQwZDlmNTQxM2QxMDQ0MjYuLjJlZGE5MmVmYWViYjlkYTA5
NjQxNDVjYzhlZjRiNWYzZjc1ODE4YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL2luY2x1ZGUvRUdML2VnbGV4dF9hbmdsZS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL2luY2x1ZGUvRUdML2VnbGV4dF9hbmdsZS5oCkBAIC0xOTQsNiArMTk0LDkgQEAgRUdMQVBJ
IEVHTGludCBFR0xBUElFTlRSWSBlZ2xQcm9ncmFtQ2FjaGVSZXNpemVBTkdMRShFR0xEaXNwbGF5
IGRweSwgRUdMaW50IGxpbWkKICNkZWZpbmUgRUdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFIDB4
MzQ1QgogI2RlZmluZSBFR0xfVEVYVFVSRV9UWVBFX0FOR0xFIDB4MzQ1QwogI2RlZmluZSBFR0xf
VEVYVFVSRV9JTlRFUk5BTF9GT1JNQVRfQU5HTEUgMHgzNDVECisjZGVmaW5lIEVHTF9JT1NVUkZB
Q0VfVVNBR0VfSElOVF9BTkdMRSAweDM0OEMKKyNkZWZpbmUgRUdMX0lPU1VSRkFDRV9SRUFEX0hJ
TlRfQU5HTEUgMHgwMDAxCisjZGVmaW5lIEVHTF9JT1NVUkZBQ0VfV1JJVEVfSElOVF9BTkdMRSAw
eDAwMDIKICNlbmRpZiAvKiBFR0xfQU5HTEVfaW9zdXJmYWNlX2NsaWVudF9idWZmZXIgKi8KIAog
I2lmbmRlZiBFR0xfQU5HTEVfY3JlYXRlX2NvbnRleHRfZXh0ZW5zaW9uc19lbmFibGVkCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wv
ZWFnbC9EaXNwbGF5RUFHTC5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdM
RS9yZW5kZXJlci9nbC9lYWdsL0Rpc3BsYXlFQUdMLm1tCmluZGV4IGE0ZjQzMDk2Y2FiZjI5YzAz
NjlkZDE0ZTQ5MTM2MmM2Y2MzZThiMTUuLjQyYjZjZmZjNTBhZTcwZTY1NzI5ODllZmMwMjhlMDIw
MjFiMDRmOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdM
RS9yZW5kZXJlci9nbC9lYWdsL0Rpc3BsYXlFQUdMLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9lYWdsL0Rpc3BsYXlFQUdMLm1tCkBAIC00
OCw4ICs0OCw2IEBACiAKICNkZWZpbmUgR0xFU19TSUxFTkNFX0RFUFJFQ0FUSU9OCiAKLSNpZiAh
ZGVmaW5lZChBTkdMRV9QTEFURk9STV9JT1NfU0lNVUxBVE9SKQotCiBuYW1lc3BhY2UKIHsKIApA
QCAtNTgsOCArNTYsNiBAQCBjb25zdCBjaGFyICprT3BlbkdMRVNEeWxpYk5hbWUgPQogCiB9CiAK
LSNlbmRpZgotCiBuYW1lc3BhY2UgcngKIHsKIApAQCAtOTEsOSArODcsNiBAQCBlZ2w6OkVycm9y
IERpc3BsYXlFQUdMOjppbml0aWFsaXplKGVnbDo6RGlzcGxheSAqZGlzcGxheSkKIHsKICAgICBt
RUdMRGlzcGxheSA9IGRpc3BsYXk7CiAKLSNpZiBkZWZpbmVkKEFOR0xFX1BMQVRGT1JNX0lPU19T
SU1VTEFUT1IpCi0gICAgcmV0dXJuIGVnbDo6RWdsTm90SW5pdGlhbGl6ZWQoKSA8PCAiQU5HTEUg
d2l0aCBFQUdMIG5vdCBzdXBwb3J0ZWQgb24gaU9TIFNpbXVsYXRvciBkdWUgdG8gbGFjayBvZiBJ
T1N1cmZhY2Ugc3VwcG9ydC4iOwotI2Vsc2UKICAgICBhbmdsZTo6U3lzdGVtSW5mbyBpbmZvOwog
ICAgIGlmICghYW5nbGU6OkdldFN5c3RlbUluZm8oJmluZm8pKQogICAgIHsKQEAgLTEyNiw3ICsx
MTksNiBAQCBlZ2w6OkVycm9yIERpc3BsYXlFQUdMOjppbml0aWFsaXplKGVnbDo6RGlzcGxheSAq
ZGlzcGxheSkKICAgICB9CiAKICAgICByZXR1cm4gRGlzcGxheUdMOjppbml0aWFsaXplKGRpc3Bs
YXkpOwotI2VuZGlmCiB9CiAKIHZvaWQgRGlzcGxheUVBR0w6OnRlcm1pbmF0ZSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvZWFn
bC9JT1N1cmZhY2VTdXJmYWNlRUFHTC5oIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL3JlbmRlcmVyL2dsL2VhZ2wvSU9TdXJmYWNlU3VyZmFjZUVBR0wuaAppbmRleCAyYzQw
MDBhYzg0YTAxNWFkMDg0M2E0YzAwZjlkOGU3NjRmMmJiNjY4Li5mYWJiMWIzNmM3ZjEwYjhjMjMy
ODA3OWYxN2ZhZWY0ZGQyMTgyOTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvZWFnbC9JT1N1cmZhY2VTdXJmYWNlRUFHTC5oCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9lYWds
L0lPU3VyZmFjZVN1cmZhY2VFQUdMLmgKQEAgLTI5LDggKzI5LDEwIEBACiAjaW5jbHVkZSAibGli
QU5HTEUvcmVuZGVyZXIvZ2wvU3VyZmFjZUdMLmgiCiAjaW5jbHVkZSAibGliQU5HTEUvcmVuZGVy
ZXIvZ2wvZWFnbC9EaXNwbGF5RUFHTC5oIgogCi1zdHJ1Y3QgX19JT1N1cmZhY2U7Ci10eXBlZGVm
IF9fSU9TdXJmYWNlICpJT1N1cmZhY2VSZWY7CisjaW5jbHVkZSA8SU9TdXJmYWNlL0lPU3VyZmFj
ZVJlZi5oPgorCisvL3N0cnVjdCBfX0lPU3VyZmFjZTsKKy8vdHlwZWRlZiBfX0lPU3VyZmFjZSAq
SU9TdXJmYWNlUmVmOwogCiBuYW1lc3BhY2UgZWdsCiB7CkBAIC04NSw2ICs4NywxMCBAQCBjbGFz
cyBJT1N1cmZhY2VTdXJmYWNlRUFHTCA6IHB1YmxpYyBTdXJmYWNlR0wKICAgcHJpdmF0ZToKICAg
ICBhbmdsZTo6UmVzdWx0IGluaXRpYWxpemVBbHBoYUNoYW5uZWwoY29uc3QgZ2w6OkNvbnRleHQg
KmNvbnRleHQsIEdMdWludCB0ZXh0dXJlKTsKIAorI2lmIGRlZmluZWQoQU5HTEVfUExBVEZPUk1f
SU9TX1NJTVVMQVRPUikKKyAgICBJT1N1cmZhY2VMb2NrT3B0aW9ucyBnZXRJT1N1cmZhY2VMb2Nr
T3B0aW9ucygpIGNvbnN0OworI2VuZGlmCisKICAgICBFQUdMQ29udGV4dE9iaiBtRUFHTENvbnRl
eHQ7CiAgICAgSU9TdXJmYWNlUmVmIG1JT1N1cmZhY2U7CiAgICAgaW50IG1XaWR0aDsKQEAgLTkz
LDYgKzk5LDExIEBAIGNsYXNzIElPU3VyZmFjZVN1cmZhY2VFQUdMIDogcHVibGljIFN1cmZhY2VH
TAogICAgIGludCBtRm9ybWF0SW5kZXg7CiAKICAgICBib29sIG1BbHBoYUluaXRpYWxpemVkOwor
I2lmIGRlZmluZWQoQU5HTEVfUExBVEZPUk1fSU9TX1NJTVVMQVRPUikKKyAgICBHTHVpbnQgbUJv
dW5kVGV4dHVyZUlEOworICAgIGJvb2wgbVVwbG9hZEZyb21JT1N1cmZhY2U7CisgICAgYm9vbCBt
UmVhZGJhY2tUb0lPU3VyZmFjZTsKKyNlbmRpZgogfTsKIAogfSAgLy8gbmFtZXNwYWNlIHJ4CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIv
Z2wvZWFnbC9JT1N1cmZhY2VTdXJmYWNlRUFHTC5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9lYWdsL0lPU3VyZmFjZVN1cmZhY2VFQUdMLm1tCmlu
ZGV4IDk2YTRkYTNkMGNhMjUwODBkODk4ODE1NzdhM2IyODc3MjIxZjk3NGIuLjM2OWRhNWJlZDgy
OGQxYzcyYTA4N2FjMDliZWFlMWViMjAyNTk0MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9lYWdsL0lPU3VyZmFjZVN1cmZhY2VF
QUdMLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJl
ci9nbC9lYWdsL0lPU3VyZmFjZVN1cmZhY2VFQUdMLm1tCkBAIC00Myw2ICs0Myw4IEBACiAjaW1w
b3J0IDxPcGVuR0xFUy9FQUdMSU9TdXJmYWNlLmg+CiAjaW1wb3J0IDxPcGVuR0xFUy9FQUdMRHJh
d2FibGUuaD4KIAorI2ltcG9ydCA8b3MvbG9nLmg+CisKIG5hbWVzcGFjZSByeAogewogCkBAIC0x
MTgsNiArMTIwLDE3IEBAIElPU3VyZmFjZVN1cmZhY2VFQUdMOjpJT1N1cmZhY2VTdXJmYWNlRUFH
TChjb25zdCBlZ2w6OlN1cmZhY2VTdGF0ZSAmc3RhdGUsCiAgICAgQVNTRVJUKG1Gb3JtYXRJbmRl
eCA+PSAwKTsKIAogICAgIG1BbHBoYUluaXRpYWxpemVkID0gIWhhc0VtdWxhdGVkQWxwaGFDaGFu
bmVsKCk7CisKKyNpZiBkZWZpbmVkKEFOR0xFX1BMQVRGT1JNX0lPU19TSU1VTEFUT1IpCisgICAg
bUJvdW5kVGV4dHVyZUlEID0gMDsKKyAgICBFR0xBdHRyaWIgdXNhZ2VIaW50ID0gYXR0cmlicy5n
ZXQoRUdMX0lPU1VSRkFDRV9VU0FHRV9ISU5UX0FOR0xFLCAwKTsKKyAgICBpZiAodXNhZ2VIaW50
ID09IDApCisgICAgeworICAgICAgdXNhZ2VIaW50ID0gRUdMX0lPU1VSRkFDRV9SRUFEX0hJTlRf
QU5HTEUgfCBFR0xfSU9TVVJGQUNFX1dSSVRFX0hJTlRfQU5HTEU7CisgICAgfQorICAgIG1VcGxv
YWRGcm9tSU9TdXJmYWNlID0gKCh1c2FnZUhpbnQgJiBFR0xfSU9TVVJGQUNFX1JFQURfSElOVF9B
TkdMRSkgIT0gMCk7CisgICAgbVJlYWRiYWNrVG9JT1N1cmZhY2UgPSAoKHVzYWdlSGludCAmIEVH
TF9JT1NVUkZBQ0VfV1JJVEVfSElOVF9BTkdMRSkgIT0gMCk7CisjZW5kaWYKIH0KIAogSU9TdXJm
YWNlU3VyZmFjZUVBR0w6On5JT1N1cmZhY2VTdXJmYWNlRUFHTCgpCkBAIC0xNzAsNyArMTgzLDYg
QEAgZWdsOjpFcnJvciBJT1N1cmZhY2VTdXJmYWNlRUFHTDo6YmluZFRleEltYWdlKGNvbnN0IGds
OjpDb250ZXh0ICpjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ2w6OlRleHR1cmUgKnRleHR1cmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBFR0xpbnQpCiB7Ci0jaWYgIWRlZmluZWQoQU5HTEVfUExBVEZP
Uk1fSU9TX1NJTVVMQVRPUikKICAgICBTdGF0ZU1hbmFnZXJHTCAqc3RhdGVNYW5hZ2VyID0gR2V0
U3RhdGVNYW5hZ2VyR0woY29udGV4dCk7CiAKICAgICBjb25zdCBUZXh0dXJlR0wgKnRleHR1cmVH
TCA9IEdldEltcGxBczxUZXh0dXJlR0w+KHRleHR1cmUpOwpAQCAtMTc4LDcgKzE5MCw5IEBAIGVn
bDo6RXJyb3IgSU9TdXJmYWNlU3VyZmFjZUVBR0w6OmJpbmRUZXhJbWFnZShjb25zdCBnbDo6Q29u
dGV4dCAqY29udGV4dCwKICAgICBzdGF0ZU1hbmFnZXItPmJpbmRUZXh0dXJlKGdsOjpUZXh0dXJl
VHlwZTo6XzJELCB0ZXh0dXJlSUQpOwogICAgIGNvbnN0IGF1dG8gJmZvcm1hdCA9IGtJT1N1cmZh
Y2VGb3JtYXRzW21Gb3JtYXRJbmRleF07CiAKKyNpZiAhZGVmaW5lZChBTkdMRV9QTEFURk9STV9J
T1NfU0lNVUxBVE9SKQogICAgIGlmICghW21FQUdMQ29udGV4dCB0ZXhJbWFnZUlPU3VyZmFjZTpt
SU9TdXJmYWNlIHRhcmdldDpHTF9URVhUVVJFXzJEIGludGVybmFsRm9ybWF0OmZvcm1hdC5uYXRp
dmVJbnRlcm5hbEZvcm1hdCB3aWR0aDptV2lkdGggaGVpZ2h0Om1IZWlnaHQgZm9ybWF0OmZvcm1h
dC5uYXRpdmVGb3JtYXQgdHlwZTpmb3JtYXQubmF0aXZlVHlwZSBwbGFuZTptUGxhbmVdKSB7Cisg
ICAgICAgIG9zX2xvZyhPU19MT0dfREVGQVVMVCwgIkVBR0xDb250ZXh0IHRleEltYWdlSU9TdXJm
YWNlMkQgZmFpbGVkXG4iKTsKICAgICAgICAgcmV0dXJuIGVnbDo6RWdsQ29udGV4dExvc3QoKSA8
PCAiRUFHTENvbnRleHQgdGV4SW1hZ2VJT1N1cmZhY2UyRCBmYWlsZWQuIjsKICAgICB9CiAKQEAg
LTE4NiwxOCArMjAwLDUyIEBAIGVnbDo6RXJyb3IgSU9TdXJmYWNlU3VyZmFjZUVBR0w6OmJpbmRU
ZXhJbWFnZShjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKICAgICB7CiAgICAgICAgIHJldHVy
biBlZ2w6OkVnbENvbnRleHRMb3N0KCkgPDwgIkZhaWxlZCB0byBpbml0aWFsaXplIElPU3VyZmFj
ZSBhbHBoYSBjaGFubmVsLiI7CiAgICAgfQorI2Vsc2UgLy8gIWRlZmluZWQoQU5HTEVfUExBVEZP
Uk1fSU9TX1NJTVVMQVRPUikKKyAgICBjb25zdCBGdW5jdGlvbnNHTCAqZnVuY3Rpb25zID0gR2V0
RnVuY3Rpb25zR0woY29udGV4dCk7CisKKyAgICBJT1N1cmZhY2VMb2NrKG1JT1N1cmZhY2UsIGdl
dElPU3VyZmFjZUxvY2tPcHRpb25zKCksIG51bGxwdHIpOworICAgIHZvaWQqIHRleHR1cmVEYXRh
ID0gbnVsbHB0cjsKKyAgICBpZiAobVVwbG9hZEZyb21JT1N1cmZhY2UpCisgICAgeworICAgICAg
ICBnbDo6UGl4ZWxVbnBhY2tTdGF0ZSBkZWZhdWx0VW5wYWNrU3RhdGU7CisgICAgICAgIHN0YXRl
TWFuYWdlci0+c2V0UGl4ZWxVbnBhY2tTdGF0ZShkZWZhdWx0VW5wYWNrU3RhdGUpOworICAgICAg
ICB0ZXh0dXJlRGF0YSA9IElPU3VyZmFjZUdldEJhc2VBZGRyZXNzKG1JT1N1cmZhY2UpOworICAg
IH0KKworICAgIC8vIFRPRE8oa2JyKTogY29uc2lkZXIgdHJ5aW5nIHRvIG9wdGltaXplIGF3YXkg
dGV4dHVyZSByZWFsbG9jYXRpb25zIGJ5CisgICAgLy8ga2VlcGluZyB0cmFjayBvZiB3aGljaCB0
ZXh0dXJlcyBoYXZlIGFscmVhZHkgYmVlbiBhbGxvY2F0ZWQuCisgICAgZnVuY3Rpb25zLT50ZXhJ
bWFnZTJEKEdMX1RFWFRVUkVfMkQsIDAsIGZvcm1hdC5uYXRpdmVJbnRlcm5hbEZvcm1hdCwgbVdp
ZHRoLCBtSGVpZ2h0LCAwLCBmb3JtYXQubmF0aXZlRm9ybWF0LCBmb3JtYXQubmF0aXZlVHlwZSwg
dGV4dHVyZURhdGEpOworCisgICAgbUJvdW5kVGV4dHVyZUlEID0gdGV4dHVyZUlEOworI2VuZGlm
IC8vICFkZWZpbmVkKEFOR0xFX1BMQVRGT1JNX0lPU19TSU1VTEFUT1IpCiAKICAgICByZXR1cm4g
ZWdsOjpOb0Vycm9yKCk7Ci0jZWxzZQotICAgIHJldHVybiBlZ2w6OkVnbENvbnRleHRMb3N0KCkg
PDwgIkVBR0xDb250ZXh0IElPU3VyZmFjZSBub3Qgc3VwcG9ydGVkIGluIHRoZSBzaW11bGF0b3Iu
IjsKLSNlbmRpZgogfQogCi0KIGVnbDo6RXJyb3IgSU9TdXJmYWNlU3VyZmFjZUVBR0w6OnJlbGVh
c2VUZXhJbWFnZShjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwgRUdMaW50IGJ1ZmZlcikKIHsK
ICAgICBjb25zdCBGdW5jdGlvbnNHTCAqZnVuY3Rpb25zID0gR2V0RnVuY3Rpb25zR0woY29udGV4
dCk7CisjaWYgIWRlZmluZWQoQU5HTEVfUExBVEZPUk1fSU9TX1NJTVVMQVRPUikKICAgICBmdW5j
dGlvbnMtPmZsdXNoKCk7CisjZWxzZSAvLyAhZGVmaW5lZChBTkdMRV9QTEFURk9STV9JT1NfU0lN
VUxBVE9SKQorICAgIGlmIChtUmVhZGJhY2tUb0lPU3VyZmFjZSkKKyAgICB7CisgICAgICAgIFN0
YXRlTWFuYWdlckdMICpzdGF0ZU1hbmFnZXIgPSBHZXRTdGF0ZU1hbmFnZXJHTChjb250ZXh0KTsK
KyAgICAgICAgR0x1aW50IHRlbXBGQk8gPSAwOworICAgICAgICBmdW5jdGlvbnMtPmdlbkZyYW1l
YnVmZmVycygxLCAmdGVtcEZCTyk7CisgICAgICAgIHN0YXRlTWFuYWdlci0+YmluZEZyYW1lYnVm
ZmVyKEdMX0ZSQU1FQlVGRkVSLCB0ZW1wRkJPKTsKKyAgICAgICAgZnVuY3Rpb25zLT5mcmFtZWJ1
ZmZlclRleHR1cmUyRChHTF9GUkFNRUJVRkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDAsIEdMX1RF
WFRVUkVfMkQsIG1Cb3VuZFRleHR1cmVJRCwgMCk7CisgICAgICAgIGdsOjpQaXhlbFBhY2tTdGF0
ZSBzdGF0ZTsKKyAgICAgICAgc3RhdGUuYWxpZ25tZW50ID0gMTsKKyAgICAgICAgc3RhdGVNYW5h
Z2VyLT5zZXRQaXhlbFBhY2tTdGF0ZShzdGF0ZSk7CisgICAgICAgIC8vIFRPRE8oa2JyKTogcG9z
c2libHkgbW9yZSBzdGF0ZSB0byBiZSBzZXQgaGVyZS4KKyAgICAgICAgY29uc3QgYXV0byAmZm9y
bWF0ID0ga0lPU3VyZmFjZUZvcm1hdHNbbUZvcm1hdEluZGV4XTsKKyAgICAgICAgZnVuY3Rpb25z
LT5yZWFkUGl4ZWxzKDAsIDAsIG1XaWR0aCwgbUhlaWdodCwgZm9ybWF0Lm5hdGl2ZUZvcm1hdCwg
Zm9ybWF0Lm5hdGl2ZVR5cGUsIElPU3VyZmFjZUdldEJhc2VBZGRyZXNzKG1JT1N1cmZhY2UpKTsK
KyAgICB9CisKKyAgICBJT1N1cmZhY2VVbmxvY2sobUlPU3VyZmFjZSwgZ2V0SU9TdXJmYWNlTG9j
a09wdGlvbnMoKSwgbnVsbHB0cik7CisjZW5kaWYgLy8gIWRlZmluZWQoQU5HTEVfUExBVEZPUk1f
SU9TX1NJTVVMQVRPUikKKwogICAgIHJldHVybiBlZ2w6Ok5vRXJyb3IoKTsKIH0KIApAQCAtMjMy
LDcgKzI4MCw2IEBAIEVHTGludCBJT1N1cmZhY2VTdXJmYWNlRUFHTDo6Z2V0U3dhcEJlaGF2aW9y
KCkgY29uc3QKIGJvb2wgSU9TdXJmYWNlU3VyZmFjZUVBR0w6OnZhbGlkYXRlQXR0cmlidXRlcyhF
R0xDbGllbnRCdWZmZXIgYnVmZmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgZWdsOjpBdHRyaWJ1dGVNYXAgJmF0dHJpYnMpCiB7Ci0jaWYgIWRl
ZmluZWQoQU5HTEVfUExBVEZPUk1fSU9TX1NJTVVMQVRPUikKICAgICBJT1N1cmZhY2VSZWYgaW9T
dXJmYWNlID0gcmVpbnRlcnByZXRfY2FzdDxJT1N1cmZhY2VSZWY+KGJ1ZmZlcik7CiAKICAgICAv
LyBUaGUgcGxhbmUgbXVzdCBleGlzdCBmb3IgdGhpcyBJT1N1cmZhY2UuIElPU3VyZmFjZUdldFBs
YW5lQ291bnQgY2FuIHJldHVybiAwIGZvciBub24tcGxhbmFyCkBAIC0yNzMsOSArMzIwLDYgQEAg
Ym9vbCBJT1N1cmZhY2VTdXJmYWNlRUFHTDo6dmFsaWRhdGVBdHRyaWJ1dGVzKEVHTENsaWVudEJ1
ZmZlciBidWZmZXIsCiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7Ci0jZWxzZQotICAgIHJldHVy
biBmYWxzZTsKLSNlbmRpZgogfQogCiAvLyBXcmFwcyBhIEZyYW1lYnVmZmVyR0wgdG8gaG9vayB0
aGUgZGVzdHJveSBmdW5jdGlvbiB0byBkZWxldGUgdGhlIHRleHR1cmUgYXNzb2NpYXRlZCB3aXRo
IHRoZQpAQCAtMzE4LDcgKzM2Miw3IEBAIEZyYW1lYnVmZmVySW1wbCAqSU9TdXJmYWNlU3VyZmFj
ZUVBR0w6OmNyZWF0ZURlZmF1bHRGcmFtZWJ1ZmZlcihjb25zdCBnbDo6Q29udGV4CiAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIH0KICNlbHNlCi0gICAgRVJSKCkgPDwgIklPU3VyZmFjZXMg
bm90IHN1cHBvcnRlZCBvbiBpT1MgU2ltdWxhdG9yIjsKKyAgICBFUlIoKSA8PCAiSU9TdXJmYWNl
cyB3aXRoIE9wZW5HTCBFUyBub3Qgc3VwcG9ydGVkIG9uIGlPUyBTaW11bGF0b3IiOwogI2VuZGlm
CiAKICAgICBpZiAoSXNFcnJvcihpbml0aWFsaXplQWxwaGFDaGFubmVsKGNvbnRleHQsIHRleHR1
cmUpKSkKQEAgLTM1Nyw2ICs0MDEsMTYgQEAgYm9vbCBJT1N1cmZhY2VTdXJmYWNlRUFHTDo6aGFz
RW11bGF0ZWRBbHBoYUNoYW5uZWwoKSBjb25zdAogICAgIHJldHVybiBmb3JtYXQuaW50ZXJuYWxG
b3JtYXQgPT0gR0xfUkdCOwogfQogCitJT1N1cmZhY2VMb2NrT3B0aW9ucyBJT1N1cmZhY2VTdXJm
YWNlRUFHTDo6Z2V0SU9TdXJmYWNlTG9ja09wdGlvbnMoKSBjb25zdAoreworICAgIElPU3VyZmFj
ZUxvY2tPcHRpb25zIG9wdGlvbnMgPSAwOworICAgIGlmICghbVJlYWRiYWNrVG9JT1N1cmZhY2Up
CisgICAgeworICAgICAgICBvcHRpb25zIHw9IGtJT1N1cmZhY2VMb2NrUmVhZE9ubHk7CisgICAg
fQorICAgIHJldHVybiBvcHRpb25zOworfQorCiB9ICAvLyBuYW1lc3BhY2UgcngKIAogI2VuZGlm
ICAvLyBkZWZpbmVkKEFOR0xFX1BMQVRGT1JNX0lPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS92YWxpZGF0aW9uRUdMLmNwcCBiL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS92YWxpZGF0aW9uRUdMLmNwcAppbmRleCBmZjRjZWE3
NDkyZmMwY2Q5MWY4MjY2OWM3ZmQxMDBhYzU0ZmNmMDAyLi42YmYzYWJlYTU3MWE0YjcyNmYxYzAz
OTM5YmYwZjQ1MDQ0ZTFhMGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvbGliQU5HTEUvdmFsaWRhdGlvbkVHTC5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL2xpYkFOR0xFL3ZhbGlkYXRpb25FR0wuY3BwCkBAIC0xNzE2LDYgKzE3MTYsMTIgQEAg
RXJyb3IgVmFsaWRhdGVDcmVhdGVQYnVmZmVyRnJvbUNsaWVudEJ1ZmZlcihEaXNwbGF5ICpkaXNw
bGF5LAogICAgICAgICAgICAgICAgICAgICByZXR1cm4gRWdsQmFkQXR0cmlidXRlKCkgPDwgIjxi
dWZ0eXBlPiBkb2Vzbid0IHN1cHBvcnQgc2V0dGluZyBHTCBjb2xvcnNwYWNlIjsKICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEVHTF9J
T1NVUkZBQ0VfVVNBR0VfSElOVF9BTkdMRToKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgJiB+
KEVHTF9JT1NVUkZBQ0VfUkVBRF9ISU5UX0FOR0xFIHwgRUdMX0lPU1VSRkFDRV9XUklURV9ISU5U
X0FOR0xFKSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBF
Z2xCYWRBdHRyaWJ1dGUoKSA8PCAiSU9TdXJmYWNlIHVzYWdlIGhpbnQgbXVzdCBvbmx5IGNvbnRh
aW4gUkVBRCBvciBXUklURSI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICByZXR1cm4gRWdsQmFk
QXR0cmlidXRlKCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tCmluZGV4IDU1NDk0ZWQwZWUyZGUxYTJiMDFk
MGQwMzY3MDA4Y2ZkODM4NWUwNWEuLjg4NjE2OGU0ZWE0YzY1NDYzZTdlYWVmMzNmYTI4OWRhYTYz
MDk0N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYkdMTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvV2ViR0xMYXllci5tbQpAQCAtMjMxLDYgKzIzMSw4IEBAIHN0YXRpYyB2b2lkIGZyZWVEYXRh
KHZvaWQgKiwgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IC8qIHNpemUgKi8pCiAgICAgICAgIEVH
TF9URVhUVVJFX0lOVEVSTkFMX0ZPUk1BVF9BTkdMRSwgdXNpbmdBbHBoYSA/IEdMX0JHUkFfRVhU
IDogR0xfUkdCLAogICAgICAgICBFR0xfVEVYVFVSRV9GT1JNQVQsIEVHTF9URVhUVVJFX1JHQkEs
CiAgICAgICAgIEVHTF9URVhUVVJFX1RZUEVfQU5HTEUsIEdMX1VOU0lHTkVEX0JZVEUsCisgICAg
ICAgIC8vIE9ubHkgaGFzIGFuIGVmZmVjdCBvbiB0aGUgaU9TIFNpbXVsYXRvci4KKyAgICAgICAg
RUdMX0lPU1VSRkFDRV9VU0FHRV9ISU5UX0FOR0xFLCBFR0xfSU9TVVJGQUNFX1dSSVRFX0hJTlRf
QU5HTEUsCiAgICAgICAgIEVHTF9OT05FLCBFR0xfTk9ORQogICAgIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNW
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNv
cGllckNWLmNwcAppbmRleCAxMjA3MjRkZWM5Y2FlM2JjYTcwYmFhMzBkN2ZjMzA2N2ZlOTMwZDQ3
Li44NWE2OWZiODRiOTE2MmUwYzQ5MTU2MjY0MzZkNzc5OTJkOWNhZGJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJl
Q29waWVyQ1YuY3BwCkBAIC03NTIsNiArNzUyLDggQEAgdm9pZCogVmlkZW9UZXh0dXJlQ29waWVy
Q1Y6OmF0dGFjaElPU3VyZmFjZVRvVGV4dHVyZShHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGkK
ICAgICAgICAgRUdMX1RFWFRVUkVfSU5URVJOQUxfRk9STUFUX0FOR0xFLCBzdGF0aWNfY2FzdDxF
R0xpbnQ+KGludGVybmFsRm9ybWF0KSwKICAgICAgICAgRUdMX1RFWFRVUkVfRk9STUFULCBFR0xf
VEVYVFVSRV9SR0JBLAogICAgICAgICBFR0xfVEVYVFVSRV9UWVBFX0FOR0xFLCBzdGF0aWNfY2Fz
dDxFR0xpbnQ+KHR5cGUpLAorICAgICAgICAvLyBPbmx5IGhhcyBhbiBlZmZlY3Qgb24gdGhlIGlP
UyBTaW11bGF0b3IuCisgICAgICAgIEVHTF9JT1NVUkZBQ0VfVVNBR0VfSElOVF9BTkdMRSwgRUdM
X0lPU1VSRkFDRV9SRUFEX0hJTlRfQU5HTEUsCiAgICAgICAgIEVHTF9OT05FLCBFR0xfTk9ORQog
ICAgIH07CiAgICAgRUdMU3VyZmFjZSBwYnVmZmVyID0gRUdMX0NyZWF0ZVBidWZmZXJGcm9tQ2xp
ZW50QnVmZmVyKGRpc3BsYXksIEVHTF9JT1NVUkZBQ0VfQU5HTEUsIHN1cmZhY2UsIG1fY29udGV4
dC0+cGxhdGZvcm1Db25maWcoKSwgc3VyZmFjZUF0dHJpYnV0ZXMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386547</attachid>
            <date>2019-12-30 18:02:34 -0800</date>
            <delta_ts>2019-12-31 19:28:36 -0800</delta_ts>
            <desc>Work-in-progress</desc>
            <filename>bug-205618-20191230180233.patch</filename>
            <type>text/plain</type>
            <size>17075</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggOWU4ZDUxZWEzNjQ0ZWYxN2QyYTNmNGIxNzc3NDVlZjVjNjQwYTRjYi4uZjBhOTBhNGJlOWE2
YWZjMDJiM2I2NDMwYWYzMGRhNTAwNTFjYWUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTEyLTMwICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBpT1MgU2ltdWxhdG9yIHRvIEFO
R0xFIGJhY2tlbmQgZm9yIFdlYkdMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDU2MTgKKworICAgICAgICBFbXVsYXRlIG1pc3NpbmcgW0VBR0xDb250
ZXh0IHRleEltYWdlSU9TdXJmYWNlOi4uLl0gdXNpbmcgYQorICAgICAgICBjb21iaW5hdGlvbiBv
ZiB0ZXh0dXJlIHVwbG9hZHMgYW5kIHJlYWRiYWNrcyBmcm9tIGFuZCB0byB0aGUKKyAgICAgICAg
SU9TdXJmYWNlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogZXh0ZW5zaW9ucy9FR0xfQU5HTEVfaW9zdXJmYWNlX2NsaWVudF9idWZmZXIudHh0Ogor
ICAgICAgICAqIGluY2x1ZGUvRUdML2VnbGV4dF9hbmdsZS5oOgorICAgICAgICAqIHNyYy9saWJB
TkdMRS9yZW5kZXJlci9nbC9lYWdsL0Rpc3BsYXlFQUdMLm1tOgorICAgICAgICAocng6OkRpc3Bs
YXlFQUdMOjppbml0aWFsaXplKToKKyAgICAgICAgKiBzcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wv
ZWFnbC9JT1N1cmZhY2VTdXJmYWNlRUFHTC5oOgorICAgICAgICAqIHNyYy9saWJBTkdMRS9yZW5k
ZXJlci9nbC9lYWdsL0lPU3VyZmFjZVN1cmZhY2VFQUdMLm1tOgorICAgICAgICAocng6OklPU3Vy
ZmFjZVN1cmZhY2VFQUdMOjpJT1N1cmZhY2VTdXJmYWNlRUFHTCk6CisgICAgICAgIChyeDo6SU9T
dXJmYWNlU3VyZmFjZUVBR0w6OmJpbmRUZXhJbWFnZSk6CisgICAgICAgIChyeDo6SU9TdXJmYWNl
U3VyZmFjZUVBR0w6OnJlbGVhc2VUZXhJbWFnZSk6CisgICAgICAgIChyeDo6SU9TdXJmYWNlU3Vy
ZmFjZUVBR0w6OnZhbGlkYXRlQXR0cmlidXRlcyk6CisgICAgICAgIChyeDo6SU9TdXJmYWNlU3Vy
ZmFjZUVBR0w6OmNyZWF0ZURlZmF1bHRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChyeDo6SU9TdXJm
YWNlU3VyZmFjZUVBR0w6OmdldElPU3VyZmFjZUxvY2tPcHRpb25zIGNvbnN0KToKKyAgICAgICAg
KiBzcmMvbGliQU5HTEUvdmFsaWRhdGlvbkVHTC5jcHA6CisgICAgICAgIChlZ2w6OlZhbGlkYXRl
Q3JlYXRlUGJ1ZmZlckZyb21DbGllbnRCdWZmZXIpOgorCiAyMDE5LTEyLTI1ICBEZWFuIEphY2tz
b24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR0xdIEVuYWJsZSBBTkdMRSBieSBk
ZWZhdWx0IGZvciBDb2NvYSBwbGF0Zm9ybXMgKGV4Y2VwdCBzaW11bGF0b3IpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggMDMzNGQ4OTA2OTRiZjBlNTBmOTBmN2RjM2NkYzIyYzlhMDBmN2M5ZS4uMDdlYTQxN2M1NzFm
OWM2ODgxZWE3YjRiODI4YzYyMjQ4MDhmMDY0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBA
CisyMDE5LTEyLTMwICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciBpT1MgU2ltdWxhdG9yIHRvIEFOR0xFIGJhY2tlbmQgZm9yIFdl
YkdMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2
MTgKKworICAgICAgICBQYXNzIHVzYWdlIGhpbnRzICh1c2VkIG9ubHkgb24gaU9TIFNpbXVsYXRv
cikgd2hlbiBjcmVhdGluZworICAgICAgICBwYnVmZmVyIGZyb20gSU9TdXJmYWNlLgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2ViR0xMYXllciBhbGxvY2F0
ZUlPU3VyZmFjZUJhY2tpbmdTdG9yZVdpdGhTaXplOnVzaW5nQWxwaGE6XSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VmlkZW9UZXh0dXJlQ29waWVyQ1Y6OmF0dGFjaElPU3VyZmFjZVRvVGV4dHVyZSk6
CisKIDIwMTktMTItMzAgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ3JlYXRlIG1lZGlhIG1pbWUgdHlwZSBjYWNoZSBiYXNlIGNsYXNzIHRvIHJlZHVj
ZSBkdXBsaWNhdGUgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvZXh0
ZW5zaW9ucy9FR0xfQU5HTEVfaW9zdXJmYWNlX2NsaWVudF9idWZmZXIudHh0IGIvU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvZXh0ZW5zaW9ucy9FR0xfQU5HTEVfaW9zdXJmYWNlX2NsaWVudF9idWZm
ZXIudHh0CmluZGV4IDgyMDZlYWIzODk0MmI0Y2Y2MzdlNDZlYWU2MjE1ZDdjZDI3Y2I4MzYuLmMw
MWFiMDAyZDhjZjk2NGYyMDkxOTI2N2ZmYWJkZDlkNmQ3MWQ0OTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL2V4dGVuc2lvbnMvRUdMX0FOR0xFX2lvc3VyZmFjZV9jbGllbnRf
YnVmZmVyLnR4dAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9leHRlbnNpb25zL0VHTF9B
TkdMRV9pb3N1cmZhY2VfY2xpZW50X2J1ZmZlci50eHQKQEAgLTIxLDcgKzIxLDcgQEAgU3RhdHVz
CiAgICAgRHJhZnQKIAogVmVyc2lvbgotICAgIFZlcnNpb24gMywgQXVnIDEzLCAyMDE5CisgICAg
VmVyc2lvbiA0LCBEZWMgMjgsIDIwMTkKIAogTnVtYmVyCiAKQEAgLTUzLDYgKzUzLDcgQEAgTmV3
IFRva2VucwogICAgICAgICBFR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUgICAgMHgzNDVCCiAg
ICAgICAgIEVHTF9URVhUVVJFX1RZUEVfQU5HTEUgICAgICAgICAweDM0NUMKICAgICAgICAgRUdM
X1RFWFRVUkVfSU5URVJOQUxfRk9STUFUX0FOR0xFIDB4MzQ1RAorICAgICAgICBFR0xfSU9TVVJG
QUNFX1VTQUdFX0hJTlRfQU5HTEUgMHgzNDhDCiAKIEFkZGl0aW9ucyB0byBDaGFwdGVyIDMgb2Yg
dGhlIEVHTCAxLjQgU3BlY2lmaWNhdGlvbiAoRUdMIEZ1bmN0aW9ucyBhbmQgRXJyb3JzKQogCkBA
IC04OCw3ICs4OSwxNSBAQCBBZGRpdGlvbnMgdG8gQ2hhcHRlciAzIG9mIHRoZSBFR0wgMS40IFNw
ZWNpZmljYXRpb24gKEVHTCBGdW5jdGlvbnMgYW5kIEVycm9ycykKICAgICBFR0xfVEVYVFVSRV9J
TlRFUk5BTF9GT1JNQVRfQU5HTEUgYXR0cmlidXRlcyBtdXN0IGJlIG9uZSBvZiB0aGUKICAgICBj
b21iaW5hdGlvbnMgbGlzdGVkIGluIHRhYmxlIGVnbC5pb3N1cmZhY2UuZm9ybWF0cyBvciBhbgog
ICAgIEVHTF9CQURfUEFSQU1FVEVSIGlzIGdlbmVyYXRlZC4gVGhlIGNvbWJpbmF0aW9uIG11c3Qg
YWxzbyBiZSBhIHZhbGlkCi0gICAgY29tYmluYXRpb25zIGZvciBnbFRleEltYWdlMkQgb3IgRUdM
X0JBRF9QQVJBTUVURVIgaXMgZ2VuZXJhdGVkLiIKKyAgICBjb21iaW5hdGlvbnMgZm9yIGdsVGV4
SW1hZ2UyRCBvciBFR0xfQkFEX1BBUkFNRVRFUiBpcyBnZW5lcmF0ZWQuCisKKyAgICBUaGUgYXR0
cmlidXRlIEVHTF9JT1NVUkZBQ0VfVVNBR0VfSElOVF9BTkdMRSBtYXkgb3B0aW9uYWxseSBiZSBz
cGVjaWZpZWQgYXMKKyAgICBhIGNvbWJpbmF0aW9uIG9mIHRoZSBiaXRzIEVHTF9JT1NVUkZBQ0Vf
UkVBRF9ISU5UX0FOR0xFIGFuZAorICAgIEVHTF9JT1NVUkZBQ0VfV1JJVEVfSElOVF9BTkdMRS4g
T24gdGhlIGlPUyBTaW11bGF0b3IgcGxhdGZvcm0sIHdoZXJlCisgICAgSU9TdXJmYWNlIHN1cHBv
cnQgaXMgaW5jb21wbGV0ZSwgdGhlc2UgaGludHMgaW5kaWNhdGUgd2hldGhlciB0aGUgaW50ZW50
IGlzCisgICAgdG8gcmVhZCBmcm9tIHRoZSBJT1N1cmZhY2UsIHdyaXRlIHRvIGl0LCBvciBib3Ro
LiBFeHBsaWNpdGx5IHBhc3NpbmcgMCBmb3IKKyAgICB0aGlzIGF0dHJpYnV0ZSBpcyBlcXVpdmFs
ZW50IHRvIHNldHRpbmcgYm90aCB0aGUgcmVhZCBhbmQgd3JpdGUgdXNhZ2UKKyAgICBiaXRzLiBU
aGlzIGF0dHJpYnV0ZSBpcyBpZ25vcmVkIG9uIG90aGVyIHBsYXRmb3Jtcy4iCiAKICAgICAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KICAgICBUZXh0dXJlIFR5cGUgICAgICAgICAgICAgICBUZXh0dXJlIElu
dGVybmFsIEZvcm1hdApAQCAtMTIyLDMgKzEzMSw0IEBAIFJldmlzaW9uIEhpc3RvcnkKICAgICBW
ZXJzaW9uIDEsIDIwMTcvMTIvMDYgLSBmaXJzdCBkcmFmdC4KICAgICBWZXJzaW9uIDIsIDIwMTkv
MDQvMDEgLSBBbGxvdyBNYWtlQ3VycmVudC4KICAgICBWZXJzaW9uIDMsIDIwMTkvMDgvMTMgLSBB
bGxvdyBSR0IgaW50ZXJuYWwgZm9ybWF0cworICAgIFZlcnNpb24gNCwgMjAxOS8xMi8yOCAtIEFk
ZCB1c2FnZSBoaW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRl
L0VHTC9lZ2xleHRfYW5nbGUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvRUdM
L2VnbGV4dF9hbmdsZS5oCmluZGV4IDJjM2JhNmJlZDRhZmQ5NDcyM2FlYTAyODQwZDlmNTQxM2Qx
MDQ0MjYuLjJlZGE5MmVmYWViYjlkYTA5NjQxNDVjYzhlZjRiNWYzZjc1ODE4YmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvRUdML2VnbGV4dF9hbmdsZS5oCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvRUdML2VnbGV4dF9hbmdsZS5oCkBA
IC0xOTQsNiArMTk0LDkgQEAgRUdMQVBJIEVHTGludCBFR0xBUElFTlRSWSBlZ2xQcm9ncmFtQ2Fj
aGVSZXNpemVBTkdMRShFR0xEaXNwbGF5IGRweSwgRUdMaW50IGxpbWkKICNkZWZpbmUgRUdMX1RF
WFRVUkVfUkVDVEFOR0xFX0FOR0xFIDB4MzQ1QgogI2RlZmluZSBFR0xfVEVYVFVSRV9UWVBFX0FO
R0xFIDB4MzQ1QwogI2RlZmluZSBFR0xfVEVYVFVSRV9JTlRFUk5BTF9GT1JNQVRfQU5HTEUgMHgz
NDVECisjZGVmaW5lIEVHTF9JT1NVUkZBQ0VfVVNBR0VfSElOVF9BTkdMRSAweDM0OEMKKyNkZWZp
bmUgRUdMX0lPU1VSRkFDRV9SRUFEX0hJTlRfQU5HTEUgMHgwMDAxCisjZGVmaW5lIEVHTF9JT1NV
UkZBQ0VfV1JJVEVfSElOVF9BTkdMRSAweDAwMDIKICNlbmRpZiAvKiBFR0xfQU5HTEVfaW9zdXJm
YWNlX2NsaWVudF9idWZmZXIgKi8KIAogI2lmbmRlZiBFR0xfQU5HTEVfY3JlYXRlX2NvbnRleHRf
ZXh0ZW5zaW9uc19lbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvZWFnbC9EaXNwbGF5RUFHTC5tbSBiL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9lYWdsL0Rpc3BsYXlFQUdMLm1t
CmluZGV4IGE0ZjQzMDk2Y2FiZjI5YzAzNjlkZDE0ZTQ5MTM2MmM2Y2MzZThiMTUuLjQyYjZjZmZj
NTBhZTcwZTY1NzI5ODllZmMwMjhlMDIwMjFiMDRmOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9lYWdsL0Rpc3BsYXlFQUdMLm1t
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9l
YWdsL0Rpc3BsYXlFQUdMLm1tCkBAIC00OCw4ICs0OCw2IEBACiAKICNkZWZpbmUgR0xFU19TSUxF
TkNFX0RFUFJFQ0FUSU9OCiAKLSNpZiAhZGVmaW5lZChBTkdMRV9QTEFURk9STV9JT1NfU0lNVUxB
VE9SKQotCiBuYW1lc3BhY2UKIHsKIApAQCAtNTgsOCArNTYsNiBAQCBjb25zdCBjaGFyICprT3Bl
bkdMRVNEeWxpYk5hbWUgPQogCiB9CiAKLSNlbmRpZgotCiBuYW1lc3BhY2UgcngKIHsKIApAQCAt
OTEsOSArODcsNiBAQCBlZ2w6OkVycm9yIERpc3BsYXlFQUdMOjppbml0aWFsaXplKGVnbDo6RGlz
cGxheSAqZGlzcGxheSkKIHsKICAgICBtRUdMRGlzcGxheSA9IGRpc3BsYXk7CiAKLSNpZiBkZWZp
bmVkKEFOR0xFX1BMQVRGT1JNX0lPU19TSU1VTEFUT1IpCi0gICAgcmV0dXJuIGVnbDo6RWdsTm90
SW5pdGlhbGl6ZWQoKSA8PCAiQU5HTEUgd2l0aCBFQUdMIG5vdCBzdXBwb3J0ZWQgb24gaU9TIFNp
bXVsYXRvciBkdWUgdG8gbGFjayBvZiBJT1N1cmZhY2Ugc3VwcG9ydC4iOwotI2Vsc2UKICAgICBh
bmdsZTo6U3lzdGVtSW5mbyBpbmZvOwogICAgIGlmICghYW5nbGU6OkdldFN5c3RlbUluZm8oJmlu
Zm8pKQogICAgIHsKQEAgLTEyNiw3ICsxMTksNiBAQCBlZ2w6OkVycm9yIERpc3BsYXlFQUdMOjpp
bml0aWFsaXplKGVnbDo6RGlzcGxheSAqZGlzcGxheSkKICAgICB9CiAKICAgICByZXR1cm4gRGlz
cGxheUdMOjppbml0aWFsaXplKGRpc3BsYXkpOwotI2VuZGlmCiB9CiAKIHZvaWQgRGlzcGxheUVB
R0w6OnRlcm1pbmF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMv
bGliQU5HTEUvcmVuZGVyZXIvZ2wvZWFnbC9JT1N1cmZhY2VTdXJmYWNlRUFHTC5oIGIvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL2VhZ2wvSU9TdXJmYWNl
U3VyZmFjZUVBR0wuaAppbmRleCAyYzQwMDBhYzg0YTAxNWFkMDg0M2E0YzAwZjlkOGU3NjRmMmJi
NjY4Li5mYWJiMWIzNmM3ZjEwYjhjMjMyODA3OWYxN2ZhZWY0ZGQyMTgyOTAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvZWFnbC9J
T1N1cmZhY2VTdXJmYWNlRUFHTC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9s
aWJBTkdMRS9yZW5kZXJlci9nbC9lYWdsL0lPU3VyZmFjZVN1cmZhY2VFQUdMLmgKQEAgLTI5LDgg
KzI5LDEwIEBACiAjaW5jbHVkZSAibGliQU5HTEUvcmVuZGVyZXIvZ2wvU3VyZmFjZUdMLmgiCiAj
aW5jbHVkZSAibGliQU5HTEUvcmVuZGVyZXIvZ2wvZWFnbC9EaXNwbGF5RUFHTC5oIgogCi1zdHJ1
Y3QgX19JT1N1cmZhY2U7Ci10eXBlZGVmIF9fSU9TdXJmYWNlICpJT1N1cmZhY2VSZWY7CisjaW5j
bHVkZSA8SU9TdXJmYWNlL0lPU3VyZmFjZVJlZi5oPgorCisvL3N0cnVjdCBfX0lPU3VyZmFjZTsK
Ky8vdHlwZWRlZiBfX0lPU3VyZmFjZSAqSU9TdXJmYWNlUmVmOwogCiBuYW1lc3BhY2UgZWdsCiB7
CkBAIC04NSw2ICs4NywxMCBAQCBjbGFzcyBJT1N1cmZhY2VTdXJmYWNlRUFHTCA6IHB1YmxpYyBT
dXJmYWNlR0wKICAgcHJpdmF0ZToKICAgICBhbmdsZTo6UmVzdWx0IGluaXRpYWxpemVBbHBoYUNo
YW5uZWwoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsIEdMdWludCB0ZXh0dXJlKTsKIAorI2lm
IGRlZmluZWQoQU5HTEVfUExBVEZPUk1fSU9TX1NJTVVMQVRPUikKKyAgICBJT1N1cmZhY2VMb2Nr
T3B0aW9ucyBnZXRJT1N1cmZhY2VMb2NrT3B0aW9ucygpIGNvbnN0OworI2VuZGlmCisKICAgICBF
QUdMQ29udGV4dE9iaiBtRUFHTENvbnRleHQ7CiAgICAgSU9TdXJmYWNlUmVmIG1JT1N1cmZhY2U7
CiAgICAgaW50IG1XaWR0aDsKQEAgLTkzLDYgKzk5LDExIEBAIGNsYXNzIElPU3VyZmFjZVN1cmZh
Y2VFQUdMIDogcHVibGljIFN1cmZhY2VHTAogICAgIGludCBtRm9ybWF0SW5kZXg7CiAKICAgICBi
b29sIG1BbHBoYUluaXRpYWxpemVkOworI2lmIGRlZmluZWQoQU5HTEVfUExBVEZPUk1fSU9TX1NJ
TVVMQVRPUikKKyAgICBHTHVpbnQgbUJvdW5kVGV4dHVyZUlEOworICAgIGJvb2wgbVVwbG9hZEZy
b21JT1N1cmZhY2U7CisgICAgYm9vbCBtUmVhZGJhY2tUb0lPU3VyZmFjZTsKKyNlbmRpZgogfTsK
IAogfSAgLy8gbmFtZXNwYWNlIHJ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvZWFnbC9JT1N1cmZhY2VTdXJmYWNlRUFHTC5tbSBi
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9lYWdsL0lP
U3VyZmFjZVN1cmZhY2VFQUdMLm1tCmluZGV4IDk2YTRkYTNkMGNhMjUwODBkODk4ODE1NzdhM2Iy
ODc3MjIxZjk3NGIuLjM2OWRhNWJlZDgyOGQxYzcyYTA4N2FjMDliZWFlMWViMjAyNTk0MDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9n
bC9lYWdsL0lPU3VyZmFjZVN1cmZhY2VFQUdMLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9lYWdsL0lPU3VyZmFjZVN1cmZhY2VFQUdMLm1t
CkBAIC00Myw2ICs0Myw4IEBACiAjaW1wb3J0IDxPcGVuR0xFUy9FQUdMSU9TdXJmYWNlLmg+CiAj
aW1wb3J0IDxPcGVuR0xFUy9FQUdMRHJhd2FibGUuaD4KIAorI2ltcG9ydCA8b3MvbG9nLmg+CisK
IG5hbWVzcGFjZSByeAogewogCkBAIC0xMTgsNiArMTIwLDE3IEBAIElPU3VyZmFjZVN1cmZhY2VF
QUdMOjpJT1N1cmZhY2VTdXJmYWNlRUFHTChjb25zdCBlZ2w6OlN1cmZhY2VTdGF0ZSAmc3RhdGUs
CiAgICAgQVNTRVJUKG1Gb3JtYXRJbmRleCA+PSAwKTsKIAogICAgIG1BbHBoYUluaXRpYWxpemVk
ID0gIWhhc0VtdWxhdGVkQWxwaGFDaGFubmVsKCk7CisKKyNpZiBkZWZpbmVkKEFOR0xFX1BMQVRG
T1JNX0lPU19TSU1VTEFUT1IpCisgICAgbUJvdW5kVGV4dHVyZUlEID0gMDsKKyAgICBFR0xBdHRy
aWIgdXNhZ2VIaW50ID0gYXR0cmlicy5nZXQoRUdMX0lPU1VSRkFDRV9VU0FHRV9ISU5UX0FOR0xF
LCAwKTsKKyAgICBpZiAodXNhZ2VIaW50ID09IDApCisgICAgeworICAgICAgdXNhZ2VIaW50ID0g
RUdMX0lPU1VSRkFDRV9SRUFEX0hJTlRfQU5HTEUgfCBFR0xfSU9TVVJGQUNFX1dSSVRFX0hJTlRf
QU5HTEU7CisgICAgfQorICAgIG1VcGxvYWRGcm9tSU9TdXJmYWNlID0gKCh1c2FnZUhpbnQgJiBF
R0xfSU9TVVJGQUNFX1JFQURfSElOVF9BTkdMRSkgIT0gMCk7CisgICAgbVJlYWRiYWNrVG9JT1N1
cmZhY2UgPSAoKHVzYWdlSGludCAmIEVHTF9JT1NVUkZBQ0VfV1JJVEVfSElOVF9BTkdMRSkgIT0g
MCk7CisjZW5kaWYKIH0KIAogSU9TdXJmYWNlU3VyZmFjZUVBR0w6On5JT1N1cmZhY2VTdXJmYWNl
RUFHTCgpCkBAIC0xNzAsNyArMTgzLDYgQEAgZWdsOjpFcnJvciBJT1N1cmZhY2VTdXJmYWNlRUFH
TDo6YmluZFRleEltYWdlKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2w6OlRleHR1cmUgKnRleHR1cmUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFR0xpbnQpCiB7Ci0j
aWYgIWRlZmluZWQoQU5HTEVfUExBVEZPUk1fSU9TX1NJTVVMQVRPUikKICAgICBTdGF0ZU1hbmFn
ZXJHTCAqc3RhdGVNYW5hZ2VyID0gR2V0U3RhdGVNYW5hZ2VyR0woY29udGV4dCk7CiAKICAgICBj
b25zdCBUZXh0dXJlR0wgKnRleHR1cmVHTCA9IEdldEltcGxBczxUZXh0dXJlR0w+KHRleHR1cmUp
OwpAQCAtMTc4LDcgKzE5MCw5IEBAIGVnbDo6RXJyb3IgSU9TdXJmYWNlU3VyZmFjZUVBR0w6OmJp
bmRUZXhJbWFnZShjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKICAgICBzdGF0ZU1hbmFnZXIt
PmJpbmRUZXh0dXJlKGdsOjpUZXh0dXJlVHlwZTo6XzJELCB0ZXh0dXJlSUQpOwogICAgIGNvbnN0
IGF1dG8gJmZvcm1hdCA9IGtJT1N1cmZhY2VGb3JtYXRzW21Gb3JtYXRJbmRleF07CiAKKyNpZiAh
ZGVmaW5lZChBTkdMRV9QTEFURk9STV9JT1NfU0lNVUxBVE9SKQogICAgIGlmICghW21FQUdMQ29u
dGV4dCB0ZXhJbWFnZUlPU3VyZmFjZTptSU9TdXJmYWNlIHRhcmdldDpHTF9URVhUVVJFXzJEIGlu
dGVybmFsRm9ybWF0OmZvcm1hdC5uYXRpdmVJbnRlcm5hbEZvcm1hdCB3aWR0aDptV2lkdGggaGVp
Z2h0Om1IZWlnaHQgZm9ybWF0OmZvcm1hdC5uYXRpdmVGb3JtYXQgdHlwZTpmb3JtYXQubmF0aXZl
VHlwZSBwbGFuZTptUGxhbmVdKSB7CisgICAgICAgIG9zX2xvZyhPU19MT0dfREVGQVVMVCwgIkVB
R0xDb250ZXh0IHRleEltYWdlSU9TdXJmYWNlMkQgZmFpbGVkXG4iKTsKICAgICAgICAgcmV0dXJu
IGVnbDo6RWdsQ29udGV4dExvc3QoKSA8PCAiRUFHTENvbnRleHQgdGV4SW1hZ2VJT1N1cmZhY2Uy
RCBmYWlsZWQuIjsKICAgICB9CiAKQEAgLTE4NiwxOCArMjAwLDUyIEBAIGVnbDo6RXJyb3IgSU9T
dXJmYWNlU3VyZmFjZUVBR0w6OmJpbmRUZXhJbWFnZShjb25zdCBnbDo6Q29udGV4dCAqY29udGV4
dCwKICAgICB7CiAgICAgICAgIHJldHVybiBlZ2w6OkVnbENvbnRleHRMb3N0KCkgPDwgIkZhaWxl
ZCB0byBpbml0aWFsaXplIElPU3VyZmFjZSBhbHBoYSBjaGFubmVsLiI7CiAgICAgfQorI2Vsc2Ug
Ly8gIWRlZmluZWQoQU5HTEVfUExBVEZPUk1fSU9TX1NJTVVMQVRPUikKKyAgICBjb25zdCBGdW5j
dGlvbnNHTCAqZnVuY3Rpb25zID0gR2V0RnVuY3Rpb25zR0woY29udGV4dCk7CisKKyAgICBJT1N1
cmZhY2VMb2NrKG1JT1N1cmZhY2UsIGdldElPU3VyZmFjZUxvY2tPcHRpb25zKCksIG51bGxwdHIp
OworICAgIHZvaWQqIHRleHR1cmVEYXRhID0gbnVsbHB0cjsKKyAgICBpZiAobVVwbG9hZEZyb21J
T1N1cmZhY2UpCisgICAgeworICAgICAgICBnbDo6UGl4ZWxVbnBhY2tTdGF0ZSBkZWZhdWx0VW5w
YWNrU3RhdGU7CisgICAgICAgIHN0YXRlTWFuYWdlci0+c2V0UGl4ZWxVbnBhY2tTdGF0ZShkZWZh
dWx0VW5wYWNrU3RhdGUpOworICAgICAgICB0ZXh0dXJlRGF0YSA9IElPU3VyZmFjZUdldEJhc2VB
ZGRyZXNzKG1JT1N1cmZhY2UpOworICAgIH0KKworICAgIC8vIFRPRE8oa2JyKTogY29uc2lkZXIg
dHJ5aW5nIHRvIG9wdGltaXplIGF3YXkgdGV4dHVyZSByZWFsbG9jYXRpb25zIGJ5CisgICAgLy8g
a2VlcGluZyB0cmFjayBvZiB3aGljaCB0ZXh0dXJlcyBoYXZlIGFscmVhZHkgYmVlbiBhbGxvY2F0
ZWQuCisgICAgZnVuY3Rpb25zLT50ZXhJbWFnZTJEKEdMX1RFWFRVUkVfMkQsIDAsIGZvcm1hdC5u
YXRpdmVJbnRlcm5hbEZvcm1hdCwgbVdpZHRoLCBtSGVpZ2h0LCAwLCBmb3JtYXQubmF0aXZlRm9y
bWF0LCBmb3JtYXQubmF0aXZlVHlwZSwgdGV4dHVyZURhdGEpOworCisgICAgbUJvdW5kVGV4dHVy
ZUlEID0gdGV4dHVyZUlEOworI2VuZGlmIC8vICFkZWZpbmVkKEFOR0xFX1BMQVRGT1JNX0lPU19T
SU1VTEFUT1IpCiAKICAgICByZXR1cm4gZWdsOjpOb0Vycm9yKCk7Ci0jZWxzZQotICAgIHJldHVy
biBlZ2w6OkVnbENvbnRleHRMb3N0KCkgPDwgIkVBR0xDb250ZXh0IElPU3VyZmFjZSBub3Qgc3Vw
cG9ydGVkIGluIHRoZSBzaW11bGF0b3IuIjsKLSNlbmRpZgogfQogCi0KIGVnbDo6RXJyb3IgSU9T
dXJmYWNlU3VyZmFjZUVBR0w6OnJlbGVhc2VUZXhJbWFnZShjb25zdCBnbDo6Q29udGV4dCAqY29u
dGV4dCwgRUdMaW50IGJ1ZmZlcikKIHsKICAgICBjb25zdCBGdW5jdGlvbnNHTCAqZnVuY3Rpb25z
ID0gR2V0RnVuY3Rpb25zR0woY29udGV4dCk7CisjaWYgIWRlZmluZWQoQU5HTEVfUExBVEZPUk1f
SU9TX1NJTVVMQVRPUikKICAgICBmdW5jdGlvbnMtPmZsdXNoKCk7CisjZWxzZSAvLyAhZGVmaW5l
ZChBTkdMRV9QTEFURk9STV9JT1NfU0lNVUxBVE9SKQorICAgIGlmIChtUmVhZGJhY2tUb0lPU3Vy
ZmFjZSkKKyAgICB7CisgICAgICAgIFN0YXRlTWFuYWdlckdMICpzdGF0ZU1hbmFnZXIgPSBHZXRT
dGF0ZU1hbmFnZXJHTChjb250ZXh0KTsKKyAgICAgICAgR0x1aW50IHRlbXBGQk8gPSAwOworICAg
ICAgICBmdW5jdGlvbnMtPmdlbkZyYW1lYnVmZmVycygxLCAmdGVtcEZCTyk7CisgICAgICAgIHN0
YXRlTWFuYWdlci0+YmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCB0ZW1wRkJPKTsKKyAg
ICAgICAgZnVuY3Rpb25zLT5mcmFtZWJ1ZmZlclRleHR1cmUyRChHTF9GUkFNRUJVRkZFUiwgR0xf
Q09MT1JfQVRUQUNITUVOVDAsIEdMX1RFWFRVUkVfMkQsIG1Cb3VuZFRleHR1cmVJRCwgMCk7Cisg
ICAgICAgIGdsOjpQaXhlbFBhY2tTdGF0ZSBzdGF0ZTsKKyAgICAgICAgc3RhdGUuYWxpZ25tZW50
ID0gMTsKKyAgICAgICAgc3RhdGVNYW5hZ2VyLT5zZXRQaXhlbFBhY2tTdGF0ZShzdGF0ZSk7Cisg
ICAgICAgIC8vIFRPRE8oa2JyKTogcG9zc2libHkgbW9yZSBzdGF0ZSB0byBiZSBzZXQgaGVyZS4K
KyAgICAgICAgY29uc3QgYXV0byAmZm9ybWF0ID0ga0lPU3VyZmFjZUZvcm1hdHNbbUZvcm1hdElu
ZGV4XTsKKyAgICAgICAgZnVuY3Rpb25zLT5yZWFkUGl4ZWxzKDAsIDAsIG1XaWR0aCwgbUhlaWdo
dCwgZm9ybWF0Lm5hdGl2ZUZvcm1hdCwgZm9ybWF0Lm5hdGl2ZVR5cGUsIElPU3VyZmFjZUdldEJh
c2VBZGRyZXNzKG1JT1N1cmZhY2UpKTsKKyAgICB9CisKKyAgICBJT1N1cmZhY2VVbmxvY2sobUlP
U3VyZmFjZSwgZ2V0SU9TdXJmYWNlTG9ja09wdGlvbnMoKSwgbnVsbHB0cik7CisjZW5kaWYgLy8g
IWRlZmluZWQoQU5HTEVfUExBVEZPUk1fSU9TX1NJTVVMQVRPUikKKwogICAgIHJldHVybiBlZ2w6
Ok5vRXJyb3IoKTsKIH0KIApAQCAtMjMyLDcgKzI4MCw2IEBAIEVHTGludCBJT1N1cmZhY2VTdXJm
YWNlRUFHTDo6Z2V0U3dhcEJlaGF2aW9yKCkgY29uc3QKIGJvb2wgSU9TdXJmYWNlU3VyZmFjZUVB
R0w6OnZhbGlkYXRlQXR0cmlidXRlcyhFR0xDbGllbnRCdWZmZXIgYnVmZmVyLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZWdsOjpBdHRyaWJ1dGVN
YXAgJmF0dHJpYnMpCiB7Ci0jaWYgIWRlZmluZWQoQU5HTEVfUExBVEZPUk1fSU9TX1NJTVVMQVRP
UikKICAgICBJT1N1cmZhY2VSZWYgaW9TdXJmYWNlID0gcmVpbnRlcnByZXRfY2FzdDxJT1N1cmZh
Y2VSZWY+KGJ1ZmZlcik7CiAKICAgICAvLyBUaGUgcGxhbmUgbXVzdCBleGlzdCBmb3IgdGhpcyBJ
T1N1cmZhY2UuIElPU3VyZmFjZUdldFBsYW5lQ291bnQgY2FuIHJldHVybiAwIGZvciBub24tcGxh
bmFyCkBAIC0yNzMsOSArMzIwLDYgQEAgYm9vbCBJT1N1cmZhY2VTdXJmYWNlRUFHTDo6dmFsaWRh
dGVBdHRyaWJ1dGVzKEVHTENsaWVudEJ1ZmZlciBidWZmZXIsCiAgICAgfQogCiAgICAgcmV0dXJu
IHRydWU7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgogfQogCiAvLyBXcmFwcyBh
IEZyYW1lYnVmZmVyR0wgdG8gaG9vayB0aGUgZGVzdHJveSBmdW5jdGlvbiB0byBkZWxldGUgdGhl
IHRleHR1cmUgYXNzb2NpYXRlZCB3aXRoIHRoZQpAQCAtMzE4LDcgKzM2Miw3IEBAIEZyYW1lYnVm
ZmVySW1wbCAqSU9TdXJmYWNlU3VyZmFjZUVBR0w6OmNyZWF0ZURlZmF1bHRGcmFtZWJ1ZmZlcihj
b25zdCBnbDo6Q29udGV4CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICNlbHNlCi0g
ICAgRVJSKCkgPDwgIklPU3VyZmFjZXMgbm90IHN1cHBvcnRlZCBvbiBpT1MgU2ltdWxhdG9yIjsK
KyAgICBFUlIoKSA8PCAiSU9TdXJmYWNlcyB3aXRoIE9wZW5HTCBFUyBub3Qgc3VwcG9ydGVkIG9u
IGlPUyBTaW11bGF0b3IiOwogI2VuZGlmCiAKICAgICBpZiAoSXNFcnJvcihpbml0aWFsaXplQWxw
aGFDaGFubmVsKGNvbnRleHQsIHRleHR1cmUpKSkKQEAgLTM1Nyw2ICs0MDEsMTYgQEAgYm9vbCBJ
T1N1cmZhY2VTdXJmYWNlRUFHTDo6aGFzRW11bGF0ZWRBbHBoYUNoYW5uZWwoKSBjb25zdAogICAg
IHJldHVybiBmb3JtYXQuaW50ZXJuYWxGb3JtYXQgPT0gR0xfUkdCOwogfQogCitJT1N1cmZhY2VM
b2NrT3B0aW9ucyBJT1N1cmZhY2VTdXJmYWNlRUFHTDo6Z2V0SU9TdXJmYWNlTG9ja09wdGlvbnMo
KSBjb25zdAoreworICAgIElPU3VyZmFjZUxvY2tPcHRpb25zIG9wdGlvbnMgPSAwOworICAgIGlm
ICghbVJlYWRiYWNrVG9JT1N1cmZhY2UpCisgICAgeworICAgICAgICBvcHRpb25zIHw9IGtJT1N1
cmZhY2VMb2NrUmVhZE9ubHk7CisgICAgfQorICAgIHJldHVybiBvcHRpb25zOworfQorCiB9ICAv
LyBuYW1lc3BhY2UgcngKIAogI2VuZGlmICAvLyBkZWZpbmVkKEFOR0xFX1BMQVRGT1JNX0lPUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS92YWxpZGF0
aW9uRUdMLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS92YWxpZGF0
aW9uRUdMLmNwcAppbmRleCBmZjRjZWE3NDkyZmMwY2Q5MWY4MjY2OWM3ZmQxMDBhYzU0ZmNmMDAy
Li42YmYzYWJlYTU3MWE0YjcyNmYxYzAzOTM5YmYwZjQ1MDQ0ZTFhMGE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvdmFsaWRhdGlvbkVHTC5jcHAKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3ZhbGlkYXRpb25FR0wuY3Bw
CkBAIC0xNzE2LDYgKzE3MTYsMTIgQEAgRXJyb3IgVmFsaWRhdGVDcmVhdGVQYnVmZmVyRnJvbUNs
aWVudEJ1ZmZlcihEaXNwbGF5ICpkaXNwbGF5LAogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
RWdsQmFkQXR0cmlidXRlKCkgPDwgIjxidWZ0eXBlPiBkb2Vzbid0IHN1cHBvcnQgc2V0dGluZyBH
TCBjb2xvcnNwYWNlIjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIEVHTF9JT1NVUkZBQ0VfVVNBR0VfSElOVF9BTkdMRToKKyAgICAg
ICAgICAgICAgICBpZiAodmFsdWUgJiB+KEVHTF9JT1NVUkZBQ0VfUkVBRF9ISU5UX0FOR0xFIHwg
RUdMX0lPU1VSRkFDRV9XUklURV9ISU5UX0FOR0xFKSkKKyAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBFZ2xCYWRBdHRyaWJ1dGUoKSA8PCAiSU9TdXJmYWNlIHVz
YWdlIGhpbnQgbXVzdCBvbmx5IGNvbnRhaW4gUkVBRCBvciBXUklURSI7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAg
ICAgICAgICAgICByZXR1cm4gRWdsQmFkQXR0cmlidXRlKCk7CiAgICAgICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tCmlu
ZGV4IDU1NDk0ZWQwZWUyZGUxYTJiMDFkMGQwMzY3MDA4Y2ZkODM4NWUwNWEuLmI4YjdmZDMwNmVj
Y2RlZTNlYTE5OThiZTc4ZmRmMTE1ZThhODhhMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbQpAQCAtNTUsNyArNTUsNyBA
QAogI2RlZmluZSBHTF9BTkdMRV9leHBsaWNpdF9jb250ZXh0CiAjaW5jbHVkZSA8QU5HTEUvZ2wy
ZXh0Lmg+CiAjaW5jbHVkZSA8QU5HTEUvZ2wyZXh0X2FuZ2xlLmg+Ci0jaWYgUExBVEZPUk0oTUFD
KQorI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpCiBj
b25zdCBHTGVudW0gaW9TdXJmYWNlVGV4dHVyZVR5cGUgPSBHTF9URVhUVVJFX1JFQ1RBTkdMRV9B
TkdMRTsKICNlbHNlCiBjb25zdCBHTGVudW0gaW9TdXJmYWNlVGV4dHVyZVR5cGUgPSBHTF9URVhU
VVJFXzJEOwpAQCAtMjMxLDYgKzIzMSw4IEBAIHN0YXRpYyB2b2lkIGZyZWVEYXRhKHZvaWQgKiwg
Y29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IC8qIHNpemUgKi8pCiAgICAgICAgIEVHTF9URVhUVVJF
X0lOVEVSTkFMX0ZPUk1BVF9BTkdMRSwgdXNpbmdBbHBoYSA/IEdMX0JHUkFfRVhUIDogR0xfUkdC
LAogICAgICAgICBFR0xfVEVYVFVSRV9GT1JNQVQsIEVHTF9URVhUVVJFX1JHQkEsCiAgICAgICAg
IEVHTF9URVhUVVJFX1RZUEVfQU5HTEUsIEdMX1VOU0lHTkVEX0JZVEUsCisgICAgICAgIC8vIE9u
bHkgaGFzIGFuIGVmZmVjdCBvbiB0aGUgaU9TIFNpbXVsYXRvci4KKyAgICAgICAgRUdMX0lPU1VS
RkFDRV9VU0FHRV9ISU5UX0FOR0xFLCBFR0xfSU9TVVJGQUNFX1dSSVRFX0hJTlRfQU5HTEUsCiAg
ICAgICAgIEVHTF9OT05FLCBFR0xfTk9ORQogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNw
cAppbmRleCAxMjA3MjRkZWM5Y2FlM2JjYTcwYmFhMzBkN2ZjMzA2N2ZlOTMwZDQ3Li44NWE2OWZi
ODRiOTE2MmUwYzQ5MTU2MjY0MzZkNzc5OTJkOWNhZGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1Yu
Y3BwCkBAIC03NTIsNiArNzUyLDggQEAgdm9pZCogVmlkZW9UZXh0dXJlQ29waWVyQ1Y6OmF0dGFj
aElPU3VyZmFjZVRvVGV4dHVyZShHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGkKICAgICAgICAg
RUdMX1RFWFRVUkVfSU5URVJOQUxfRk9STUFUX0FOR0xFLCBzdGF0aWNfY2FzdDxFR0xpbnQ+KGlu
dGVybmFsRm9ybWF0KSwKICAgICAgICAgRUdMX1RFWFRVUkVfRk9STUFULCBFR0xfVEVYVFVSRV9S
R0JBLAogICAgICAgICBFR0xfVEVYVFVSRV9UWVBFX0FOR0xFLCBzdGF0aWNfY2FzdDxFR0xpbnQ+
KHR5cGUpLAorICAgICAgICAvLyBPbmx5IGhhcyBhbiBlZmZlY3Qgb24gdGhlIGlPUyBTaW11bGF0
b3IuCisgICAgICAgIEVHTF9JT1NVUkZBQ0VfVVNBR0VfSElOVF9BTkdMRSwgRUdMX0lPU1VSRkFD
RV9SRUFEX0hJTlRfQU5HTEUsCiAgICAgICAgIEVHTF9OT05FLCBFR0xfTk9ORQogICAgIH07CiAg
ICAgRUdMU3VyZmFjZSBwYnVmZmVyID0gRUdMX0NyZWF0ZVBidWZmZXJGcm9tQ2xpZW50QnVmZmVy
KGRpc3BsYXksIEVHTF9JT1NVUkZBQ0VfQU5HTEUsIHN1cmZhY2UsIG1fY29udGV4dC0+cGxhdGZv
cm1Db25maWcoKSwgc3VyZmFjZUF0dHJpYnV0ZXMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386570</attachid>
            <date>2019-12-31 19:28:38 -0800</date>
            <delta_ts>2020-01-03 14:01:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205618-20191231192837.patch</filename>
            <type>text/plain</type>
            <size>25848</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggOWU4ZDUxZWEzNjQ0ZWYxN2QyYTNmNGIxNzc3NDVlZjVjNjQwYTRjYi4uNGNiODUxOTFlNTIw
OTgxMzljNTZiMmZiZDBkMDU0M2VkZTI5YjlkZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM1IEBACisyMDE5LTEyLTMxICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBpT1MgU2ltdWxhdG9yIHRvIEFO
R0xFIGJhY2tlbmQgZm9yIFdlYkdMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDU2MTgKKworICAgICAgICBFeHRlbmQgRUdMX0FOR0xFX2lvc3VyZmFj
ZV9jbGllbnRfYnVmZmVyIGV4dGVuc2lvbiB0byByZXF1aXJlIHVzZQorICAgICAgICBvZiBURVhU
VVJFXzJEIHRhcmdldCBvbiBpT1MsIGFuZCB0byBwcm92aWRlIHJlYWQvd3JpdGUgdXNhZ2UgaGlu
dHMKKyAgICAgICAgZm9yIHRoZSBwYnVmZmVyIGNyZWF0ZWQgZnJvbSB0aGUgSU9TdXJmYWNlLgor
CisgICAgICAgIEVtdWxhdGUgbWlzc2luZyBbRUFHTENvbnRleHQgdGV4SW1hZ2VJT1N1cmZhY2U6
Li4uXSB2aWEgdGV4dHVyZQorICAgICAgICB1cGxvYWQgaW4gZWdsQmluZFRleEltYWdlIGFuZCBy
ZWFkYmFjayBpbiBlZ2xSZWxlYXNlVGV4SW1hZ2UuCisKKyAgICAgICAgVGhlc2UgY2hhbmdlcyB3
aWxsIGJlIHVwc3RyZWFtZWQgaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9w
L2FuZ2xlcHJvamVjdC9pc3N1ZXMvZGV0YWlsP2lkPTQyNTYgLgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZXh0ZW5zaW9ucy9FR0xfQU5HTEVfaW9z
dXJmYWNlX2NsaWVudF9idWZmZXIudHh0OgorICAgICAgICAqIGluY2x1ZGUvRUdML2VnbGV4dF9h
bmdsZS5oOgorICAgICAgICAqIHNyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9lYWdsL0Rpc3BsYXlF
QUdMLm1tOgorICAgICAgICAocng6OkRpc3BsYXlFQUdMOjppbml0aWFsaXplKToKKyAgICAgICAg
KiBzcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvZWFnbC9JT1N1cmZhY2VTdXJmYWNlRUFHTC5oOgor
ICAgICAgICAqIHNyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9lYWdsL0lPU3VyZmFjZVN1cmZhY2VF
QUdMLm1tOgorICAgICAgICAocng6OklPU3VyZmFjZVN1cmZhY2VFQUdMOjpJT1N1cmZhY2VTdXJm
YWNlRUFHTCk6CisgICAgICAgIChyeDo6SU9TdXJmYWNlU3VyZmFjZUVBR0w6OmJpbmRUZXhJbWFn
ZSk6CisgICAgICAgIChyeDo6SU9TdXJmYWNlU3VyZmFjZUVBR0w6OnJlbGVhc2VUZXhJbWFnZSk6
CisgICAgICAgIChyeDo6SU9TdXJmYWNlU3VyZmFjZUVBR0w6OnZhbGlkYXRlQXR0cmlidXRlcyk6
CisgICAgICAgIChyeDo6SU9TdXJmYWNlU3VyZmFjZUVBR0w6OmNyZWF0ZURlZmF1bHRGcmFtZWJ1
ZmZlcik6CisgICAgICAgIChyeDo6SU9TdXJmYWNlU3VyZmFjZUVBR0w6OmdldElPU3VyZmFjZUxv
Y2tPcHRpb25zIGNvbnN0KToKKyAgICAgICAgKiBzcmMvbGliQU5HTEUvdmFsaWRhdGlvbkVHTC5j
cHA6CisgICAgICAgIChlZ2w6OlZhbGlkYXRlQ3JlYXRlUGJ1ZmZlckZyb21DbGllbnRCdWZmZXIp
OgorCiAyMDE5LTEyLTI1ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbV2ViR0xdIEVuYWJsZSBBTkdMRSBieSBkZWZhdWx0IGZvciBDb2NvYSBwbGF0Zm9ybXMgKGV4
Y2VwdCBzaW11bGF0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmExOWMwZWNhZGFlNjY2ZGRkZmRiZGRkOTRl
MjM2ZDQyNzVmYjRlZi4uYjJhOTk0NTcxNGYwZjFhNDYxZWM0YmQ0Mzk3MWQ5NDE2OGEzNzNlYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE5LTEyLTMxICBLZW5uZXRoIFJ1c3NlbGwg
IDxrYnJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBpT1MgU2ltdWxh
dG9yIHRvIEFOR0xFIGJhY2tlbmQgZm9yIFdlYkdMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2MTgKKworICAgICAgICBSZWZhY3RvciB1c2Ugb2Yg
RUdMX0FOR0xFX2lvc3VyZmFjZV9jbGllbnRfYnVmZmVyIGV4dGVuc2lvbiB0bworICAgICAgICB1
bmlmb3JtbHkgdXNlIHJlY3Rhbmd1bGFyIHRleHR1cmVzIG9uIG1hY09TLCBhbmQgMkQgdGV4dHVy
ZXMgb24KKyAgICAgICAgaU9TLCBpbmNsdWRpbmcgdGhlIHNpbXVsYXRvci4gVGhpcyBzaG91bGQg
bWFrZSB0aGUgb24tZGV2aWNlIGlPUworICAgICAgICBjb2RlIHBhdGhzIG1vcmUgY29ycmVjdCBh
cyB3ZWxsLgorCisgICAgICAgIFBhc3MgdXNhZ2UgaGludHMsIG9ubHkgYWZmZWN0aW5nIHRoZSBp
T1MgU2ltdWxhdG9yLCB3aGVuIGNyZWF0aW5nCisgICAgICAgIGFsbCBwYnVmZmVycyBmcm9tIElP
U3VyZmFjZXMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBkb2VzIG5vdCB0dXJuIG9uIEFOR0xFIGZv
ciB0aGUgaU9TIFNpbXVsYXRvciB5ZXQ7IHRoYXQKKyAgICAgICAgd2lsbCBiZSBkb25lIGluIGEg
Zm9sbG93LW9uIHBhdGNoIGFmdGVyIG1vcmUgdGVzdGluZy4KKworICAgICAgICBDb3ZlcmVkIGJ5
IHRoZSBwcmVleGlzdGluZyBXZWJHTCBjb25mb3JtYW5jZSBzdWl0ZSBpbiB0aGUgbGF5b3V0Cisg
ICAgICAgIHRlc3RzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RCYXNlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0M0RBTkdMRS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dDNEQ29jb2EubW06
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0Qp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW06CisgICAg
ICAgICgtW1dlYkdMTGF5ZXIgZGlzcGxheV0pOgorICAgICAgICAoLVtXZWJHTExheWVyIGFsbG9j
YXRlSU9TdXJmYWNlQmFja2luZ1N0b3JlV2l0aFNpemU6dXNpbmdBbHBoYTpdKToKKyAgICAgICAg
KC1bV2ViR0xMYXllciBiaW5kRnJhbWVidWZmZXJUb05leHRBdmFpbGFibGVTdXJmYWNlXSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VmlkZW9UZXh0dXJlQ29waWVyQ1Y6OmF0dGFjaElPU3VyZmFjZVRv
VGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RleHR1cmVDb3BpZXJDVjo6Y29weUlt
YWdlVG9QbGF0Zm9ybVRleHR1cmUpOgorCiAyMDE5LTEyLTMxICBQZW5nIExpdSAgPHBlbmcubGl1
NkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHJlbW90ZSBtZWRpYSByZXNvdXJjZSBsb2FkZXIg
Zm9yIHRoZSBHUFUgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
ZXh0ZW5zaW9ucy9FR0xfQU5HTEVfaW9zdXJmYWNlX2NsaWVudF9idWZmZXIudHh0IGIvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvZXh0ZW5zaW9ucy9FR0xfQU5HTEVfaW9zdXJmYWNlX2NsaWVudF9i
dWZmZXIudHh0CmluZGV4IDgyMDZlYWIzODk0MmI0Y2Y2MzdlNDZlYWU2MjE1ZDdjZDI3Y2I4MzYu
LmM4NTQ5YzYwNmM3ZmUwZjZjZmI0NmJmZTUzMzFkNzA0NDc3Mjc5NWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL2V4dGVuc2lvbnMvRUdMX0FOR0xFX2lvc3VyZmFjZV9jbGll
bnRfYnVmZmVyLnR4dAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9leHRlbnNpb25zL0VH
TF9BTkdMRV9pb3N1cmZhY2VfY2xpZW50X2J1ZmZlci50eHQKQEAgLTIxLDcgKzIxLDcgQEAgU3Rh
dHVzCiAgICAgRHJhZnQKIAogVmVyc2lvbgotICAgIFZlcnNpb24gMywgQXVnIDEzLCAyMDE5Cisg
ICAgVmVyc2lvbiA0LCBEZWMgMjgsIDIwMTkKIAogTnVtYmVyCiAKQEAgLTUzLDYgKzUzLDcgQEAg
TmV3IFRva2VucwogICAgICAgICBFR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUgICAgMHgzNDVC
CiAgICAgICAgIEVHTF9URVhUVVJFX1RZUEVfQU5HTEUgICAgICAgICAweDM0NUMKICAgICAgICAg
RUdMX1RFWFRVUkVfSU5URVJOQUxfRk9STUFUX0FOR0xFIDB4MzQ1RAorICAgICAgICBFR0xfSU9T
VVJGQUNFX1VTQUdFX0hJTlRfQU5HTEUgMHgzNDhDCiAKIEFkZGl0aW9ucyB0byBDaGFwdGVyIDMg
b2YgdGhlIEVHTCAxLjQgU3BlY2lmaWNhdGlvbiAoRUdMIEZ1bmN0aW9ucyBhbmQgRXJyb3JzKQog
CkBAIC04MCw3ICs4MSw4IEBAIEFkZGl0aW9ucyB0byBDaGFwdGVyIDMgb2YgdGhlIEVHTCAxLjQg
U3BlY2lmaWNhdGlvbiAoRUdMIEZ1bmN0aW9ucyBhbmQgRXJyb3JzKQogICAgICAgLSBFR0xfVEVY
VFVSRV9GT1JNQVQgd2l0aCBhIHZhbHVlIG9mIEVHTF9URVhUVVJFX1JHQkEKICAgICAgIC0gRUdM
X1dJRFRIIHdpdGggYSB2YWx1ZSBiZXR3ZWVuIDEgYW5kIHRoZSB3aWR0aCBvZiA8YnVmZmVyPi4K
ICAgICAgIC0gRUdMX0hFSUdIVCB3aXRoIGEgdmFsdWUgYmV0d2VlbiAxIGFuZCB0aGUgaGVpZ2h0
IG9mIDxidWZmZXI+LgotICAgICAgLSBFR0xfVEVYVFVSRV9UQVJHRVQgd2l0aCBhIHZhbHVlIG9m
IEVHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRQorICAgICAgLSBFR0xfVEVYVFVSRV9UQVJHRVQg
d2l0aCBhIHZhbHVlIG9mIEVHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSAobWFjT1MpCisgICAg
ICAgIG9yIEVHTF9URVhUVVJFXzJEIChpT1MpCiAgICAgICAtIEVHTF9JT1NVUkZBQ0VfUExBTkVf
QU5HTEUgd2l0aCBhIHZhbHVlIGJldHdlZW4gMCBhbmQgdGhlIG51bWJlciBvZgogICAgIHBsYW5l
cyBvZiA8YnVmZmVyPiAoZXhjbHVzaXZlKS4KIApAQCAtODgsNyArOTAsMTUgQEAgQWRkaXRpb25z
IHRvIENoYXB0ZXIgMyBvZiB0aGUgRUdMIDEuNCBTcGVjaWZpY2F0aW9uIChFR0wgRnVuY3Rpb25z
IGFuZCBFcnJvcnMpCiAgICAgRUdMX1RFWFRVUkVfSU5URVJOQUxfRk9STUFUX0FOR0xFIGF0dHJp
YnV0ZXMgbXVzdCBiZSBvbmUgb2YgdGhlCiAgICAgY29tYmluYXRpb25zIGxpc3RlZCBpbiB0YWJs
ZSBlZ2wuaW9zdXJmYWNlLmZvcm1hdHMgb3IgYW4KICAgICBFR0xfQkFEX1BBUkFNRVRFUiBpcyBn
ZW5lcmF0ZWQuIFRoZSBjb21iaW5hdGlvbiBtdXN0IGFsc28gYmUgYSB2YWxpZAotICAgIGNvbWJp
bmF0aW9ucyBmb3IgZ2xUZXhJbWFnZTJEIG9yIEVHTF9CQURfUEFSQU1FVEVSIGlzIGdlbmVyYXRl
ZC4iCisgICAgY29tYmluYXRpb25zIGZvciBnbFRleEltYWdlMkQgb3IgRUdMX0JBRF9QQVJBTUVU
RVIgaXMgZ2VuZXJhdGVkLgorCisgICAgVGhlIGF0dHJpYnV0ZSBFR0xfSU9TVVJGQUNFX1VTQUdF
X0hJTlRfQU5HTEUgbWF5IG9wdGlvbmFsbHkgYmUgc3BlY2lmaWVkIGFzCisgICAgYSBjb21iaW5h
dGlvbiBvZiB0aGUgYml0cyBFR0xfSU9TVVJGQUNFX1JFQURfSElOVF9BTkdMRSBhbmQKKyAgICBF
R0xfSU9TVVJGQUNFX1dSSVRFX0hJTlRfQU5HTEUuIE9uIHRoZSBpT1MgU2ltdWxhdG9yIHBsYXRm
b3JtLCB3aGVyZQorICAgIElPU3VyZmFjZSBzdXBwb3J0IGlzIGluY29tcGxldGUsIHRoZXNlIGhp
bnRzIGluZGljYXRlIHdoZXRoZXIgdGhlIGludGVudCBpcworICAgIHRvIHJlYWQgZnJvbSB0aGUg
SU9TdXJmYWNlLCB3cml0ZSB0byBpdCwgb3IgYm90aC4gRXhwbGljaXRseSBwYXNzaW5nIDAgZm9y
CisgICAgdGhpcyBhdHRyaWJ1dGUgaXMgZXF1aXZhbGVudCB0byBzZXR0aW5nIGJvdGggdGhlIHJl
YWQgYW5kIHdyaXRlIHVzYWdlCisgICAgYml0cy4gVGhpcyBhdHRyaWJ1dGUgaXMgaWdub3JlZCBv
biBvdGhlciBwbGF0Zm9ybXMuIgogCiAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgVGV4dHVy
ZSBUeXBlICAgICAgICAgICAgICAgVGV4dHVyZSBJbnRlcm5hbCBGb3JtYXQKQEAgLTEyMiwzICsx
MzIsNSBAQCBSZXZpc2lvbiBIaXN0b3J5CiAgICAgVmVyc2lvbiAxLCAyMDE3LzEyLzA2IC0gZmly
c3QgZHJhZnQuCiAgICAgVmVyc2lvbiAyLCAyMDE5LzA0LzAxIC0gQWxsb3cgTWFrZUN1cnJlbnQu
CiAgICAgVmVyc2lvbiAzLCAyMDE5LzA4LzEzIC0gQWxsb3cgUkdCIGludGVybmFsIGZvcm1hdHMK
KyAgICBWZXJzaW9uIDQsIDIwMTkvMTIvMjggLSBBZGQgdXNhZ2UgaGludDsgcmVxdWlyZSBURVhU
VVJFX1JFQ1RBTkdMRSBvbiBtYWNPUworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBU
RVhUVVJFXzJEIG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5j
bHVkZS9FR0wvZWdsZXh0X2FuZ2xlLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRl
L0VHTC9lZ2xleHRfYW5nbGUuaAppbmRleCAyYzNiYTZiZWQ0YWZkOTQ3MjNhZWEwMjg0MGQ5ZjU0
MTNkMTA0NDI2Li4yZWRhOTJlZmFlYmI5ZGEwOTY0MTQ1Y2M4ZWY0YjVmM2Y3NTgxOGJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL0VHTC9lZ2xleHRfYW5nbGUu
aAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL0VHTC9lZ2xleHRfYW5nbGUu
aApAQCAtMTk0LDYgKzE5NCw5IEBAIEVHTEFQSSBFR0xpbnQgRUdMQVBJRU5UUlkgZWdsUHJvZ3Jh
bUNhY2hlUmVzaXplQU5HTEUoRUdMRGlzcGxheSBkcHksIEVHTGludCBsaW1pCiAjZGVmaW5lIEVH
TF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSAweDM0NUIKICNkZWZpbmUgRUdMX1RFWFRVUkVfVFlQ
RV9BTkdMRSAweDM0NUMKICNkZWZpbmUgRUdMX1RFWFRVUkVfSU5URVJOQUxfRk9STUFUX0FOR0xF
IDB4MzQ1RAorI2RlZmluZSBFR0xfSU9TVVJGQUNFX1VTQUdFX0hJTlRfQU5HTEUgMHgzNDhDCisj
ZGVmaW5lIEVHTF9JT1NVUkZBQ0VfUkVBRF9ISU5UX0FOR0xFIDB4MDAwMQorI2RlZmluZSBFR0xf
SU9TVVJGQUNFX1dSSVRFX0hJTlRfQU5HTEUgMHgwMDAyCiAjZW5kaWYgLyogRUdMX0FOR0xFX2lv
c3VyZmFjZV9jbGllbnRfYnVmZmVyICovCiAKICNpZm5kZWYgRUdMX0FOR0xFX2NyZWF0ZV9jb250
ZXh0X2V4dGVuc2lvbnNfZW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL2VhZ2wvRGlzcGxheUVBR0wubW0gYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvZWFnbC9EaXNwbGF5RUFH
TC5tbQppbmRleCBhNGY0MzA5NmNhYmYyOWMwMzY5ZGQxNGU0OTEzNjJjNmNjM2U4YjE1Li40MmI2
Y2ZmYzUwYWU3MGU2NTcyOTg5ZWZjMDI4ZTAyMDIxYjA0Zjk5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvZWFnbC9EaXNwbGF5RUFH
TC5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIv
Z2wvZWFnbC9EaXNwbGF5RUFHTC5tbQpAQCAtNDgsOCArNDgsNiBAQAogCiAjZGVmaW5lIEdMRVNf
U0lMRU5DRV9ERVBSRUNBVElPTgogCi0jaWYgIWRlZmluZWQoQU5HTEVfUExBVEZPUk1fSU9TX1NJ
TVVMQVRPUikKLQogbmFtZXNwYWNlCiB7CiAKQEAgLTU4LDggKzU2LDYgQEAgY29uc3QgY2hhciAq
a09wZW5HTEVTRHlsaWJOYW1lID0KIAogfQogCi0jZW5kaWYKLQogbmFtZXNwYWNlIHJ4CiB7CiAK
QEAgLTkxLDkgKzg3LDYgQEAgZWdsOjpFcnJvciBEaXNwbGF5RUFHTDo6aW5pdGlhbGl6ZShlZ2w6
OkRpc3BsYXkgKmRpc3BsYXkpCiB7CiAgICAgbUVHTERpc3BsYXkgPSBkaXNwbGF5OwogCi0jaWYg
ZGVmaW5lZChBTkdMRV9QTEFURk9STV9JT1NfU0lNVUxBVE9SKQotICAgIHJldHVybiBlZ2w6OkVn
bE5vdEluaXRpYWxpemVkKCkgPDwgIkFOR0xFIHdpdGggRUFHTCBub3Qgc3VwcG9ydGVkIG9uIGlP
UyBTaW11bGF0b3IgZHVlIHRvIGxhY2sgb2YgSU9TdXJmYWNlIHN1cHBvcnQuIjsKLSNlbHNlCiAg
ICAgYW5nbGU6OlN5c3RlbUluZm8gaW5mbzsKICAgICBpZiAoIWFuZ2xlOjpHZXRTeXN0ZW1JbmZv
KCZpbmZvKSkKICAgICB7CkBAIC0xMjYsNyArMTE5LDYgQEAgZWdsOjpFcnJvciBEaXNwbGF5RUFH
TDo6aW5pdGlhbGl6ZShlZ2w6OkRpc3BsYXkgKmRpc3BsYXkpCiAgICAgfQogCiAgICAgcmV0dXJu
IERpc3BsYXlHTDo6aW5pdGlhbGl6ZShkaXNwbGF5KTsKLSNlbmRpZgogfQogCiB2b2lkIERpc3Bs
YXlFQUdMOjp0ZXJtaW5hdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL2VhZ2wvSU9TdXJmYWNlU3VyZmFjZUVBR0wuaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9lYWdsL0lPU3Vy
ZmFjZVN1cmZhY2VFQUdMLmgKaW5kZXggMmM0MDAwYWM4NGEwMTVhZDA4NDNhNGMwMGY5ZDhlNzY0
ZjJiYjY2OC4uODdjMWI5MzQyZDJmMDBlZDM2NjE4MWMyNTNhMjkxN2Q3N2ZjNWE5YiAxMDA2NDQK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL2Vh
Z2wvSU9TdXJmYWNlU3VyZmFjZUVBR0wuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvZWFnbC9JT1N1cmZhY2VTdXJmYWNlRUFHTC5oCkBAIC0y
OSw4ICsyOSw3IEBACiAjaW5jbHVkZSAibGliQU5HTEUvcmVuZGVyZXIvZ2wvU3VyZmFjZUdMLmgi
CiAjaW5jbHVkZSAibGliQU5HTEUvcmVuZGVyZXIvZ2wvZWFnbC9EaXNwbGF5RUFHTC5oIgogCi1z
dHJ1Y3QgX19JT1N1cmZhY2U7Ci10eXBlZGVmIF9fSU9TdXJmYWNlICpJT1N1cmZhY2VSZWY7Cisj
aW5jbHVkZSA8SU9TdXJmYWNlL0lPU3VyZmFjZVJlZi5oPgogCiBuYW1lc3BhY2UgZWdsCiB7CkBA
IC04NSw2ICs4NCwxMCBAQCBjbGFzcyBJT1N1cmZhY2VTdXJmYWNlRUFHTCA6IHB1YmxpYyBTdXJm
YWNlR0wKICAgcHJpdmF0ZToKICAgICBhbmdsZTo6UmVzdWx0IGluaXRpYWxpemVBbHBoYUNoYW5u
ZWwoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsIEdMdWludCB0ZXh0dXJlKTsKIAorI2lmIGRl
ZmluZWQoQU5HTEVfUExBVEZPUk1fSU9TX1NJTVVMQVRPUikKKyAgICBJT1N1cmZhY2VMb2NrT3B0
aW9ucyBnZXRJT1N1cmZhY2VMb2NrT3B0aW9ucygpIGNvbnN0OworI2VuZGlmCisKICAgICBFQUdM
Q29udGV4dE9iaiBtRUFHTENvbnRleHQ7CiAgICAgSU9TdXJmYWNlUmVmIG1JT1N1cmZhY2U7CiAg
ICAgaW50IG1XaWR0aDsKQEAgLTkzLDYgKzk2LDExIEBAIGNsYXNzIElPU3VyZmFjZVN1cmZhY2VF
QUdMIDogcHVibGljIFN1cmZhY2VHTAogICAgIGludCBtRm9ybWF0SW5kZXg7CiAKICAgICBib29s
IG1BbHBoYUluaXRpYWxpemVkOworI2lmIGRlZmluZWQoQU5HTEVfUExBVEZPUk1fSU9TX1NJTVVM
QVRPUikKKyAgICBHTHVpbnQgbUJvdW5kVGV4dHVyZUlEOworICAgIGJvb2wgbVVwbG9hZEZyb21J
T1N1cmZhY2U7CisgICAgYm9vbCBtUmVhZGJhY2tUb0lPU3VyZmFjZTsKKyNlbmRpZgogfTsKIAog
fSAgLy8gbmFtZXNwYWNlIHJ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvZWFnbC9JT1N1cmZhY2VTdXJmYWNlRUFHTC5tbSBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9lYWdsL0lPU3Vy
ZmFjZVN1cmZhY2VFQUdMLm1tCmluZGV4IDk2YTRkYTNkMGNhMjUwODBkODk4ODE1NzdhM2IyODc3
MjIxZjk3NGIuLmRmOTkwNjYyMTU3YmY4NWYwM2NmM2FmZjQxOTRjMzEzNzc3OTE0OGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9l
YWdsL0lPU3VyZmFjZVN1cmZhY2VFQUdMLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9lYWdsL0lPU3VyZmFjZVN1cmZhY2VFQUdMLm1tCkBA
IC0xMTgsNiArMTE4LDE3IEBAIElPU3VyZmFjZVN1cmZhY2VFQUdMOjpJT1N1cmZhY2VTdXJmYWNl
RUFHTChjb25zdCBlZ2w6OlN1cmZhY2VTdGF0ZSAmc3RhdGUsCiAgICAgQVNTRVJUKG1Gb3JtYXRJ
bmRleCA+PSAwKTsKIAogICAgIG1BbHBoYUluaXRpYWxpemVkID0gIWhhc0VtdWxhdGVkQWxwaGFD
aGFubmVsKCk7CisKKyNpZiBkZWZpbmVkKEFOR0xFX1BMQVRGT1JNX0lPU19TSU1VTEFUT1IpCisg
ICAgbUJvdW5kVGV4dHVyZUlEID0gMDsKKyAgICBFR0xBdHRyaWIgdXNhZ2VIaW50ID0gYXR0cmli
cy5nZXQoRUdMX0lPU1VSRkFDRV9VU0FHRV9ISU5UX0FOR0xFLCAwKTsKKyAgICBpZiAodXNhZ2VI
aW50ID09IDApCisgICAgeworICAgICAgdXNhZ2VIaW50ID0gRUdMX0lPU1VSRkFDRV9SRUFEX0hJ
TlRfQU5HTEUgfCBFR0xfSU9TVVJGQUNFX1dSSVRFX0hJTlRfQU5HTEU7CisgICAgfQorICAgIG1V
cGxvYWRGcm9tSU9TdXJmYWNlID0gKCh1c2FnZUhpbnQgJiBFR0xfSU9TVVJGQUNFX1JFQURfSElO
VF9BTkdMRSkgIT0gMCk7CisgICAgbVJlYWRiYWNrVG9JT1N1cmZhY2UgPSAoKHVzYWdlSGludCAm
IEVHTF9JT1NVUkZBQ0VfV1JJVEVfSElOVF9BTkdMRSkgIT0gMCk7CisjZW5kaWYKIH0KIAogSU9T
dXJmYWNlU3VyZmFjZUVBR0w6On5JT1N1cmZhY2VTdXJmYWNlRUFHTCgpCkBAIC0xNzAsNyArMTgx
LDYgQEAgZWdsOjpFcnJvciBJT1N1cmZhY2VTdXJmYWNlRUFHTDo6YmluZFRleEltYWdlKGNvbnN0
IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2w6OlRleHR1cmUgKnRleHR1cmUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBFR0xpbnQpCiB7Ci0jaWYgIWRlZmluZWQoQU5HTEVfUExB
VEZPUk1fSU9TX1NJTVVMQVRPUikKICAgICBTdGF0ZU1hbmFnZXJHTCAqc3RhdGVNYW5hZ2VyID0g
R2V0U3RhdGVNYW5hZ2VyR0woY29udGV4dCk7CiAKICAgICBjb25zdCBUZXh0dXJlR0wgKnRleHR1
cmVHTCA9IEdldEltcGxBczxUZXh0dXJlR0w+KHRleHR1cmUpOwpAQCAtMTc4LDYgKzE4OCw3IEBA
IGVnbDo6RXJyb3IgSU9TdXJmYWNlU3VyZmFjZUVBR0w6OmJpbmRUZXhJbWFnZShjb25zdCBnbDo6
Q29udGV4dCAqY29udGV4dCwKICAgICBzdGF0ZU1hbmFnZXItPmJpbmRUZXh0dXJlKGdsOjpUZXh0
dXJlVHlwZTo6XzJELCB0ZXh0dXJlSUQpOwogICAgIGNvbnN0IGF1dG8gJmZvcm1hdCA9IGtJT1N1
cmZhY2VGb3JtYXRzW21Gb3JtYXRJbmRleF07CiAKKyNpZiAhZGVmaW5lZChBTkdMRV9QTEFURk9S
TV9JT1NfU0lNVUxBVE9SKQogICAgIGlmICghW21FQUdMQ29udGV4dCB0ZXhJbWFnZUlPU3VyZmFj
ZTptSU9TdXJmYWNlIHRhcmdldDpHTF9URVhUVVJFXzJEIGludGVybmFsRm9ybWF0OmZvcm1hdC5u
YXRpdmVJbnRlcm5hbEZvcm1hdCB3aWR0aDptV2lkdGggaGVpZ2h0Om1IZWlnaHQgZm9ybWF0OmZv
cm1hdC5uYXRpdmVGb3JtYXQgdHlwZTpmb3JtYXQubmF0aXZlVHlwZSBwbGFuZTptUGxhbmVdKSB7
CiAgICAgICAgIHJldHVybiBlZ2w6OkVnbENvbnRleHRMb3N0KCkgPDwgIkVBR0xDb250ZXh0IHRl
eEltYWdlSU9TdXJmYWNlMkQgZmFpbGVkLiI7CiAgICAgfQpAQCAtMTg2LDE4ICsxOTcsNTUgQEAg
ZWdsOjpFcnJvciBJT1N1cmZhY2VTdXJmYWNlRUFHTDo6YmluZFRleEltYWdlKGNvbnN0IGdsOjpD
b250ZXh0ICpjb250ZXh0LAogICAgIHsKICAgICAgICAgcmV0dXJuIGVnbDo6RWdsQ29udGV4dExv
c3QoKSA8PCAiRmFpbGVkIHRvIGluaXRpYWxpemUgSU9TdXJmYWNlIGFscGhhIGNoYW5uZWwuIjsK
ICAgICB9CisjZWxzZSAvLyAhZGVmaW5lZChBTkdMRV9QTEFURk9STV9JT1NfU0lNVUxBVE9SKQor
ICAgIGNvbnN0IEZ1bmN0aW9uc0dMICpmdW5jdGlvbnMgPSBHZXRGdW5jdGlvbnNHTChjb250ZXh0
KTsKKworICAgIElPU3VyZmFjZUxvY2sobUlPU3VyZmFjZSwgZ2V0SU9TdXJmYWNlTG9ja09wdGlv
bnMoKSwgbnVsbHB0cik7CisgICAgdm9pZCogdGV4dHVyZURhdGEgPSBudWxscHRyOworICAgIGlm
IChtVXBsb2FkRnJvbUlPU3VyZmFjZSkKKyAgICB7CisgICAgICAgIC8vIFRPRE8oa2JyKTogcG9z
c2libHkgbW9yZSBzdGF0ZSB0byBiZSBzZXQgaGVyZSwgaW5jbHVkaW5nIHNldHRpbmcgYW55Cisg
ICAgICAgIC8vIHBpeGVsIHVucGFjayBidWZmZXIgdG8gMCB3aGVuIHVzaW5nIEVTIDMuMCBjb250
ZXh0cy4KKyAgICAgICAgZ2w6OlBpeGVsVW5wYWNrU3RhdGUgZGVmYXVsdFVucGFja1N0YXRlOwor
ICAgICAgICBzdGF0ZU1hbmFnZXItPnNldFBpeGVsVW5wYWNrU3RhdGUoZGVmYXVsdFVucGFja1N0
YXRlKTsKKyAgICAgICAgdGV4dHVyZURhdGEgPSBJT1N1cmZhY2VHZXRCYXNlQWRkcmVzcyhtSU9T
dXJmYWNlKTsKKyAgICB9CisKKyAgICAvLyBUT0RPKGticik6IGNvbnNpZGVyIHRyeWluZyB0byBv
cHRpbWl6ZSBhd2F5IHRleHR1cmUgcmVhbGxvY2F0aW9ucyBieQorICAgIC8vIGtlZXBpbmcgdHJh
Y2sgb2Ygd2hpY2ggdGV4dHVyZXMgaGF2ZSBhbHJlYWR5IGJlZW4gYWxsb2NhdGVkLgorICAgIGZ1
bmN0aW9ucy0+dGV4SW1hZ2UyRChHTF9URVhUVVJFXzJELCAwLCBmb3JtYXQubmF0aXZlSW50ZXJu
YWxGb3JtYXQsIG1XaWR0aCwgbUhlaWdodCwgMCwgZm9ybWF0Lm5hdGl2ZUZvcm1hdCwgZm9ybWF0
Lm5hdGl2ZVR5cGUsIHRleHR1cmVEYXRhKTsKKworICAgIG1Cb3VuZFRleHR1cmVJRCA9IHRleHR1
cmVJRDsKKyNlbmRpZiAvLyAhZGVmaW5lZChBTkdMRV9QTEFURk9STV9JT1NfU0lNVUxBVE9SKQog
CiAgICAgcmV0dXJuIGVnbDo6Tm9FcnJvcigpOwotI2Vsc2UKLSAgICByZXR1cm4gZWdsOjpFZ2xD
b250ZXh0TG9zdCgpIDw8ICJFQUdMQ29udGV4dCBJT1N1cmZhY2Ugbm90IHN1cHBvcnRlZCBpbiB0
aGUgc2ltdWxhdG9yLiI7Ci0jZW5kaWYKIH0KIAotCiBlZ2w6OkVycm9yIElPU3VyZmFjZVN1cmZh
Y2VFQUdMOjpyZWxlYXNlVGV4SW1hZ2UoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsIEVHTGlu
dCBidWZmZXIpCiB7CiAgICAgY29uc3QgRnVuY3Rpb25zR0wgKmZ1bmN0aW9ucyA9IEdldEZ1bmN0
aW9uc0dMKGNvbnRleHQpOworI2lmICFkZWZpbmVkKEFOR0xFX1BMQVRGT1JNX0lPU19TSU1VTEFU
T1IpCiAgICAgZnVuY3Rpb25zLT5mbHVzaCgpOworI2Vsc2UgLy8gIWRlZmluZWQoQU5HTEVfUExB
VEZPUk1fSU9TX1NJTVVMQVRPUikKKyAgICBpZiAobVJlYWRiYWNrVG9JT1N1cmZhY2UpCisgICAg
eworICAgICAgICBTdGF0ZU1hbmFnZXJHTCAqc3RhdGVNYW5hZ2VyID0gR2V0U3RhdGVNYW5hZ2Vy
R0woY29udGV4dCk7CisgICAgICAgIEdMdWludCB0ZW1wRkJPID0gMDsKKyAgICAgICAgZnVuY3Rp
b25zLT5nZW5GcmFtZWJ1ZmZlcnMoMSwgJnRlbXBGQk8pOworICAgICAgICBzdGF0ZU1hbmFnZXIt
PmJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgdGVtcEZCTyk7CisgICAgICAgIGZ1bmN0
aW9ucy0+ZnJhbWVidWZmZXJUZXh0dXJlMkQoR0xfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFD
SE1FTlQwLCBHTF9URVhUVVJFXzJELCBtQm91bmRUZXh0dXJlSUQsIDApOworICAgICAgICBnbDo6
UGl4ZWxQYWNrU3RhdGUgc3RhdGU7CisgICAgICAgIHN0YXRlLmFsaWdubWVudCA9IDE7CisgICAg
ICAgIHN0YXRlTWFuYWdlci0+c2V0UGl4ZWxQYWNrU3RhdGUoc3RhdGUpOworICAgICAgICAvLyBU
T0RPKGticik6IHBvc3NpYmx5IG1vcmUgc3RhdGUgdG8gYmUgc2V0IGhlcmUsIGluY2x1ZGluZyBz
ZXR0aW5nIGFueQorICAgICAgICAvLyBwaXhlbCBwYWNrIGJ1ZmZlciB0byAwIHdoZW4gdXNpbmcg
RVMgMy4wIGNvbnRleHRzLgorICAgICAgICBjb25zdCBhdXRvICZmb3JtYXQgPSBrSU9TdXJmYWNl
Rm9ybWF0c1ttRm9ybWF0SW5kZXhdOworICAgICAgICBmdW5jdGlvbnMtPnJlYWRQaXhlbHMoMCwg
MCwgbVdpZHRoLCBtSGVpZ2h0LCBmb3JtYXQubmF0aXZlRm9ybWF0LCBmb3JtYXQubmF0aXZlVHlw
ZSwgSU9TdXJmYWNlR2V0QmFzZUFkZHJlc3MobUlPU3VyZmFjZSkpOworICAgIH0KKworICAgIElP
U3VyZmFjZVVubG9jayhtSU9TdXJmYWNlLCBnZXRJT1N1cmZhY2VMb2NrT3B0aW9ucygpLCBudWxs
cHRyKTsKKyNlbmRpZiAvLyAhZGVmaW5lZChBTkdMRV9QTEFURk9STV9JT1NfU0lNVUxBVE9SKQor
CiAgICAgcmV0dXJuIGVnbDo6Tm9FcnJvcigpOwogfQogCkBAIC0yMzIsNyArMjgwLDYgQEAgRUdM
aW50IElPU3VyZmFjZVN1cmZhY2VFQUdMOjpnZXRTd2FwQmVoYXZpb3IoKSBjb25zdAogYm9vbCBJ
T1N1cmZhY2VTdXJmYWNlRUFHTDo6dmFsaWRhdGVBdHRyaWJ1dGVzKEVHTENsaWVudEJ1ZmZlciBi
dWZmZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBlZ2w6OkF0dHJpYnV0ZU1hcCAmYXR0cmlicykKIHsKLSNpZiAhZGVmaW5lZChBTkdMRV9QTEFU
Rk9STV9JT1NfU0lNVUxBVE9SKQogICAgIElPU3VyZmFjZVJlZiBpb1N1cmZhY2UgPSByZWludGVy
cHJldF9jYXN0PElPU3VyZmFjZVJlZj4oYnVmZmVyKTsKIAogICAgIC8vIFRoZSBwbGFuZSBtdXN0
IGV4aXN0IGZvciB0aGlzIElPU3VyZmFjZS4gSU9TdXJmYWNlR2V0UGxhbmVDb3VudCBjYW4gcmV0
dXJuIDAgZm9yIG5vbi1wbGFuYXIKQEAgLTI3Myw5ICszMjAsNiBAQCBib29sIElPU3VyZmFjZVN1
cmZhY2VFQUdMOjp2YWxpZGF0ZUF0dHJpYnV0ZXMoRUdMQ2xpZW50QnVmZmVyIGJ1ZmZlciwKICAg
ICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKLSNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlm
CiB9CiAKIC8vIFdyYXBzIGEgRnJhbWVidWZmZXJHTCB0byBob29rIHRoZSBkZXN0cm95IGZ1bmN0
aW9uIHRvIGRlbGV0ZSB0aGUgdGV4dHVyZSBhc3NvY2lhdGVkIHdpdGggdGhlCkBAIC0zMTgsNyAr
MzYyLDcgQEAgRnJhbWVidWZmZXJJbXBsICpJT1N1cmZhY2VTdXJmYWNlRUFHTDo6Y3JlYXRlRGVm
YXVsdEZyYW1lYnVmZmVyKGNvbnN0IGdsOjpDb250ZXgKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQogI2Vsc2UKLSAgICBFUlIoKSA8PCAiSU9TdXJmYWNlcyBub3Qgc3VwcG9ydGVkIG9u
IGlPUyBTaW11bGF0b3IiOworICAgIEVSUigpIDw8ICJJT1N1cmZhY2VzIHdpdGggT3BlbkdMIEVT
IG5vdCBzdXBwb3J0ZWQgb24gaU9TIFNpbXVsYXRvciI7CiAjZW5kaWYKIAogICAgIGlmIChJc0Vy
cm9yKGluaXRpYWxpemVBbHBoYUNoYW5uZWwoY29udGV4dCwgdGV4dHVyZSkpKQpAQCAtMzU3LDYg
KzQwMSwxNiBAQCBib29sIElPU3VyZmFjZVN1cmZhY2VFQUdMOjpoYXNFbXVsYXRlZEFscGhhQ2hh
bm5lbCgpIGNvbnN0CiAgICAgcmV0dXJuIGZvcm1hdC5pbnRlcm5hbEZvcm1hdCA9PSBHTF9SR0I7
CiB9CiAKK0lPU3VyZmFjZUxvY2tPcHRpb25zIElPU3VyZmFjZVN1cmZhY2VFQUdMOjpnZXRJT1N1
cmZhY2VMb2NrT3B0aW9ucygpIGNvbnN0Cit7CisgICAgSU9TdXJmYWNlTG9ja09wdGlvbnMgb3B0
aW9ucyA9IDA7CisgICAgaWYgKCFtUmVhZGJhY2tUb0lPU3VyZmFjZSkKKyAgICB7CisgICAgICAg
IG9wdGlvbnMgfD0ga0lPU3VyZmFjZUxvY2tSZWFkT25seTsKKyAgICB9CisgICAgcmV0dXJuIG9w
dGlvbnM7Cit9CisKIH0gIC8vIG5hbWVzcGFjZSByeAogCiAjZW5kaWYgIC8vIGRlZmluZWQoQU5H
TEVfUExBVEZPUk1fSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L2xpYkFOR0xFL3ZhbGlkYXRpb25FR0wuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L2xpYkFOR0xFL3ZhbGlkYXRpb25FR0wuY3BwCmluZGV4IGZmNGNlYTc0OTJmYzBjZDkxZjgyNjY5
YzdmZDEwMGFjNTRmY2YwMDIuLmM0MDQ1MGVhOWI3MzliMzNlMzI0Mzk5ZWFhOTdjNTdkNTdlZDEy
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS92YWxp
ZGF0aW9uRUdMLmNwcAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUv
dmFsaWRhdGlvbkVHTC5jcHAKQEAgLTE3MTYsNiArMTcxNiwxMiBAQCBFcnJvciBWYWxpZGF0ZUNy
ZWF0ZVBidWZmZXJGcm9tQ2xpZW50QnVmZmVyKERpc3BsYXkgKmRpc3BsYXksCiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBFZ2xCYWRBdHRyaWJ1dGUoKSA8PCAiPGJ1ZnR5cGU+IGRvZXNuJ3Qg
c3VwcG9ydCBzZXR0aW5nIEdMIGNvbG9yc3BhY2UiOwogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgRUdMX0lPU1VSRkFDRV9VU0FHRV9I
SU5UX0FOR0xFOgorICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAmIH4oRUdMX0lPU1VSRkFDRV9S
RUFEX0hJTlRfQU5HTEUgfCBFR0xfSU9TVVJGQUNFX1dSSVRFX0hJTlRfQU5HTEUpKQorICAgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVnbEJhZEF0dHJpYnV0ZSgp
IDw8ICJJT1N1cmZhY2UgdXNhZ2UgaGludCBtdXN0IG9ubHkgY29udGFpbiBSRUFEIG9yIFdSSVRF
IjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIHJldHVybiBFZ2xCYWRBdHRyaWJ1dGUoKTsKICAg
ICAgICAgfQpAQCAtMTc3NSwxMCArMTc4MSwxOSBAQCBFcnJvciBWYWxpZGF0ZUNyZWF0ZVBidWZm
ZXJGcm9tQ2xpZW50QnVmZmVyKERpc3BsYXkgKmRpc3BsYXksCiAKICAgICBpZiAoYnVmdHlwZSA9
PSBFR0xfSU9TVVJGQUNFX0FOR0xFKQogICAgIHsKKyNpZiBBTkdMRV9QTEFURk9STV9NQUNPUwog
ICAgICAgICBpZiAodGV4dHVyZVRhcmdldCAhPSBFR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBFZ2xCYWRBdHRyaWJ1dGUoKSA8PCAiRUdM
X0lPU1VSRkFDRSByZXF1aXJlcyB0aGUgRUdMX1RFWFRVUkVfUkVDVEFOR0xFIHRhcmdldCI7Cisg
ICAgICAgICAgICByZXR1cm4gRWdsQmFkQXR0cmlidXRlKCkgPDwgIkVHTF9JT1NVUkZBQ0UgcmVx
dWlyZXMgdGhlIEVHTF9URVhUVVJFX1JFQ1RBTkdMRSB0YXJnZXQgb24gZGVza3RvcCBtYWNPUyI7
CisgICAgICAgIH0KKyNlbGlmIEFOR0xFX1BMQVRGT1JNX0lPUworICAgICAgICBpZiAodGV4dHVy
ZVRhcmdldCAhPSBFR0xfVEVYVFVSRV8yRCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJu
IEVnbEJhZEF0dHJpYnV0ZSgpIDw8ICJFR0xfSU9TVVJGQUNFIHJlcXVpcmVzIHRoZSBFR0xfVEVY
VFVSRV8yRCB0YXJnZXQgb24gaU9TIjsKICAgICAgICAgfQorI2Vsc2UKKyAgICAgICAgcmV0dXJu
IEVnbEJhZEF0dHJpYnV0ZSgpIDw8ICJFR0xfSU9TVVJGQUNFIHN1cHBvcnRlZCBvbmx5IG9uIG1h
Y09TIHBsYXRmb3JtcyI7CisjZW5kaWYKIAogICAgICAgICBpZiAodGV4dHVyZUZvcm1hdCAhPSBF
R0xfVEVYVFVSRV9SR0JBKQogICAgICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREJhc2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQmFzZS5oCmluZGV4IDZiOGM5YWRi
YTM1YzNiNmNkNGZlNTZkODZlMjE5ZDFjNzgwOTdlOGYuLmRhNTdkZmE5YmQ3ZTY5ZWJlZGVjNGVj
OWIyZWVhNGI4ZTkzMDFmZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQmFzZS5oCkBAIC03MzQsNiArNzM0LDIxIEBA
IHB1YmxpYzoKICAgICAgICAgTm9uZSwKICAgICB9OwogCisjaWYgVVNFKEFOR0xFKQorICAgIGVu
dW0geworICAgICAgICAvLyBUaGVzZSBjb25zdGFudHMgYXJlIHJlZGVmaW5lZCBoZXJlIGZyb20g
QU5HTEUncyBPcGVuR0wgRVMgaGVhZGVycyB0bworICAgICAgICAvLyBwcm92aWRlIGEgc2luZ2xl
IHBsYWNlIHdoZXJlIG11bHRpcGxlIHBvcnRpb25zIG9mIHBsYXRmb3JtIGNvZGUgY2FuCisgICAg
ICAgIC8vIHJlZmVyZW5jZSB0aGVtLgorI2lmIFBMQVRGT1JNKE1BQykKKyAgICAgICAgSU9TdXJm
YWNlVGV4dHVyZVRhcmdldCA9IFRFWFRVUkVfUkVDVEFOR0xFX0FSQiwgLy8gYWxzbyBHTF9URVhU
VVJFX1JFQ1RBTkdMRV9BTkdMRQorICAgICAgICBFR0xJT1N1cmZhY2VUZXh0dXJlVGFyZ2V0ID0g
MHgzNDVCLCAvLyBFR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUKKyNlbHNlCisgICAgICAgIElP
U3VyZmFjZVRleHR1cmVUYXJnZXQgPSBURVhUVVJFXzJELAorICAgICAgICBFR0xJT1N1cmZhY2VU
ZXh0dXJlVGFyZ2V0ID0gMHgzMDVGLCAvLyBFR0xfVEVYVFVSRV8yRAorI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykKKyAgICB9OworI2VuZGlmIC8vIFVTRShBTkdMRSkKKwogICAgIHZpcnR1YWwgUGxh
dGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgUGxhdGZvcm0zRE9iamVjdCBwbGF0Zm9ybVRleHR1cmUoKSBjb25z
dCA9IDA7CiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Qg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUv
R3JhcGhpY3NDb250ZXh0M0RBTkdMRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHQzREFOR0xFLmNwcAppbmRleCA1YWZlOGIwYmRhNDc1
N2I0NzViYjFhOTNlMTE3MjE0M2I0MjlhZjgzLi5mZjQ1YTlmNDVjMGUyYTIyNGJjODJlZjI2NzRl
MjE4N2JmYWI0Yzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9HcmFwaGljc0NvbnRleHQzREFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHQzREFOR0xFLmNwcApAQCAtMTk2
LDcgKzE5Niw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IElu
dFNpemUmIHNpemUpCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgYWxsb2NhdGVJT1N1cmZhY2VC
YWNraW5nU3RvcmUoSW50U2l6ZSh3aWR0aCwgaGVpZ2h0KSk7CiAgICAgdXBkYXRlRnJhbWVidWZm
ZXJUZXh0dXJlQmFja2luZ1N0b3JlRnJvbUxheWVyKCk7Ci0gICAgZ2w6OkZyYW1lYnVmZmVyVGV4
dHVyZTJEKEdMX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5UMCwgR0xfVEVYVFVSRV9S
RUNUQU5HTEVfQU5HTEUsIG1fdGV4dHVyZSwgMCk7CisgICAgZ2w6OkZyYW1lYnVmZmVyVGV4dHVy
ZTJEKEdMX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5UMCwgR3JhcGhpY3NDb250ZXh0
M0Q6OklPU3VyZmFjZVRleHR1cmVUYXJnZXQsIG1fdGV4dHVyZSwgMCk7CiAjZWxpZiBQTEFURk9S
TShHVEspCiAgICAgZ2w6OkJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBt
X3RleHR1cmUpOwogICAgIGdsOjpUZXhJbWFnZTJEKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xF
LCAwLCBtX2ludGVybmFsQ29sb3JGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIDAsIGNvbG9yRm9ybWF0
LCBHTF9VTlNJR05FRF9CWVRFLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dDNEQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHQzRENvY29hLm1tCmlu
ZGV4IDJmOTEyYzJiYWY4ODg0YzhiMmJlZjYxNWZlMGZhM2EwN2QzY2NkYTEuLjgzY2NiNDQ1NWFh
NWNiN2ZjYTc2YmM0ZDNlYmY4NzFhZWY3NTA2ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dDNEQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0M0RD
b2NvYS5tbQpAQCAtNDM5LDE5ICs0MzksMTUgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNz
Q29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmQKIAog
I2VsaWYgVVNFKEFOR0xFKQogCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIEdMZW51bSB0ZXh0dXJl
VHlwZSA9IEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFOwotI2Vsc2UKLSAgICBHTGVudW0gdGV4
dHVyZVR5cGUgPSBHTF9URVhUVVJFXzJEOwotI2VuZGlmCisgICAgR0xlbnVtIHRleHR1cmVUYXJn
ZXQgPSBHcmFwaGljc0NvbnRleHQzRDo6SU9TdXJmYWNlVGV4dHVyZVRhcmdldDsKIAogICAgIGds
OjpHZW5UZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKLSAgICBnbDo6QmluZFRleHR1cmUodGV4dHVy
ZVR5cGUsIG1fdGV4dHVyZSk7Ci0gICAgZ2w6OlRleFBhcmFtZXRlcmkodGV4dHVyZVR5cGUsIEdM
X1RFWFRVUkVfTUFHX0ZJTFRFUiwgR0xfTElORUFSKTsKLSAgICBnbDo6VGV4UGFyYW1ldGVyaSh0
ZXh0dXJlVHlwZSwgR0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5FQVIpOwotICAgIGdsOjpU
ZXhQYXJhbWV0ZXJpKHRleHR1cmVUeXBlLCBHTF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBfVE9f
RURHRSk7Ci0gICAgZ2w6OlRleFBhcmFtZXRlcmkodGV4dHVyZVR5cGUsIEdMX1RFWFRVUkVfV1JB
UF9ULCBHTF9DTEFNUF9UT19FREdFKTsKLSAgICBnbDo6QmluZFRleHR1cmUodGV4dHVyZVR5cGUs
IDApOworICAgIGdsOjpCaW5kVGV4dHVyZSh0ZXh0dXJlVGFyZ2V0LCBtX3RleHR1cmUpOworICAg
IGdsOjpUZXhQYXJhbWV0ZXJpKHRleHR1cmVUYXJnZXQsIEdMX1RFWFRVUkVfTUFHX0ZJTFRFUiwg
R0xfTElORUFSKTsKKyAgICBnbDo6VGV4UGFyYW1ldGVyaSh0ZXh0dXJlVGFyZ2V0LCBHTF9URVhU
VVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7CisgICAgZ2w6OlRleFBhcmFtZXRlcmkodGV4dHVy
ZVRhcmdldCwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0UpOworICAgIGdsOjpU
ZXhQYXJhbWV0ZXJpKHRleHR1cmVUYXJnZXQsIEdMX1RFWFRVUkVfV1JBUF9ULCBHTF9DTEFNUF9U
T19FREdFKTsKKyAgICBnbDo6QmluZFRleHR1cmUodGV4dHVyZVRhcmdldCwgMCk7CiAjZWxzZQog
I2Vycm9yIFVuc3VwcG9ydGVkIGNvbmZpZ3VyYXRpb24KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KaW5kZXggNTU0
OTRlZDBlZTJkZTFhMmIwMWQwZDAzNjcwMDhjZmQ4Mzg1ZTA1YS4uNzU4OGY5MTE1YzVjMzhlYjk4
NjEwNTBiZWIyNjMyY2UzYjQwZjBkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tCkBAIC01NSwxMSArNTUsNiBAQAogI2Rl
ZmluZSBHTF9BTkdMRV9leHBsaWNpdF9jb250ZXh0CiAjaW5jbHVkZSA8QU5HTEUvZ2wyZXh0Lmg+
CiAjaW5jbHVkZSA8QU5HTEUvZ2wyZXh0X2FuZ2xlLmg+Ci0jaWYgUExBVEZPUk0oTUFDKQotY29u
c3QgR0xlbnVtIGlvU3VyZmFjZVRleHR1cmVUeXBlID0gR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5H
TEU7Ci0jZWxzZQotY29uc3QgR0xlbnVtIGlvU3VyZmFjZVRleHR1cmVUeXBlID0gR0xfVEVYVFVS
RV8yRDsKLSNlbmRpZgogI2VuZGlmCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJHTExheWVyCkBAIC0x
NjgsNyArMTYzLDcgQEAgc3RhdGljIHZvaWQgZnJlZURhdGEodm9pZCAqLCBjb25zdCB2b2lkICpk
YXRhLCBzaXplX3QgLyogc2l6ZSAqLykKICAgICAgICAgaWYgKF9sYXRjaGVkUGJ1ZmZlcikgewog
CiAgICAgICAgICAgICBHQzNEZW51bSB0ZXh0dXJlID0gX2NvbnRleHQtPnBsYXRmb3JtVGV4dHVy
ZSgpOwotICAgICAgICAgICAgZ2w6OkJpbmRUZXh0dXJlKGlvU3VyZmFjZVRleHR1cmVUeXBlLCB0
ZXh0dXJlKTsKKyAgICAgICAgICAgIGdsOjpCaW5kVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6
SU9TdXJmYWNlVGV4dHVyZVRhcmdldCwgdGV4dHVyZSk7CiAgICAgICAgICAgICBpZiAoIUVHTF9S
ZWxlYXNlVGV4SW1hZ2UoX2VnbERpc3BsYXksIF9sYXRjaGVkUGJ1ZmZlciwgRUdMX0JBQ0tfQlVG
RkVSKSkgewogICAgICAgICAgICAgICAgIC8vIEZJWE1FOiByZXBvcnQgZXJyb3IuCiAgICAgICAg
ICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTIyNywxMCArMjIyLDEyIEBAIHN0YXRpYyB2
b2lkIGZyZWVEYXRhKHZvaWQgKiwgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IC8qIHNpemUgKi8p
CiAgICAgICAgIEVHTF9XSURUSCwgc2l6ZS53aWR0aCgpLAogICAgICAgICBFR0xfSEVJR0hULCBz
aXplLmhlaWdodCgpLAogICAgICAgICBFR0xfSU9TVVJGQUNFX1BMQU5FX0FOR0xFLCAwLAotICAg
ICAgICBFR0xfVEVYVFVSRV9UQVJHRVQsIEVHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwKKyAg
ICAgICAgRUdMX1RFWFRVUkVfVEFSR0VULCBHcmFwaGljc0NvbnRleHQzRDo6RUdMSU9TdXJmYWNl
VGV4dHVyZVRhcmdldCwKICAgICAgICAgRUdMX1RFWFRVUkVfSU5URVJOQUxfRk9STUFUX0FOR0xF
LCB1c2luZ0FscGhhID8gR0xfQkdSQV9FWFQgOiBHTF9SR0IsCiAgICAgICAgIEVHTF9URVhUVVJF
X0ZPUk1BVCwgRUdMX1RFWFRVUkVfUkdCQSwKICAgICAgICAgRUdMX1RFWFRVUkVfVFlQRV9BTkdM
RSwgR0xfVU5TSUdORURfQllURSwKKyAgICAgICAgLy8gT25seSBoYXMgYW4gZWZmZWN0IG9uIHRo
ZSBpT1MgU2ltdWxhdG9yLgorICAgICAgICBFR0xfSU9TVVJGQUNFX1VTQUdFX0hJTlRfQU5HTEUs
IEVHTF9JT1NVUkZBQ0VfV1JJVEVfSElOVF9BTkdMRSwKICAgICAgICAgRUdMX05PTkUsIEVHTF9O
T05FCiAgICAgfTsKIApAQCAtMjU5LDcgKzI1Niw3IEBAIHN0YXRpYyB2b2lkIGZyZWVEYXRhKHZv
aWQgKiwgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IC8qIHNpemUgKi8pCiAjZWxpZiBVU0UoQU5H
TEUpCiAgICAgR0MzRGVudW0gdGV4dHVyZSA9IF9jb250ZXh0LT5wbGF0Zm9ybVRleHR1cmUoKTsK
IAotICAgIGdsOjpCaW5kVGV4dHVyZShpb1N1cmZhY2VUZXh0dXJlVHlwZSwgdGV4dHVyZSk7Cisg
ICAgZ2w6OkJpbmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpJT1N1cmZhY2VUZXh0dXJlVGFy
Z2V0LCB0ZXh0dXJlKTsKIAogICAgIGlmIChfbGF0Y2hlZFBidWZmZXIpIHsKICAgICAgICAgaWYg
KCFFR0xfUmVsZWFzZVRleEltYWdlKF9lZ2xEaXNwbGF5LCBfbGF0Y2hlZFBidWZmZXIsIEVHTF9C
QUNLX0JVRkZFUikpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcAppbmRleCAxMjA3MjRkZWM5Y2Fl
M2JjYTcwYmFhMzBkN2ZjMzA2N2ZlOTMwZDQ3Li5kZGQ4YTgyZjlhMDJiZjk5MWE2YjhkYzRlZmYw
ZmUyNzQ0MzcyZjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCkBAIC03NDMsNiArNzQzLDEw
IEBAIHZvaWQqIFZpZGVvVGV4dHVyZUNvcGllckNWOjphdHRhY2hJT1N1cmZhY2VUb1RleHR1cmUo
R0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBpCiAgICAgICAgIExPRyhXZWJHTCwgIlVua25vd24g
dGV4dHVyZSB0YXJnZXQgJWQuIiwgc3RhdGljX2Nhc3Q8aW50Pih0YXJnZXQpKTsKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgfQorICAgIGlmIChlZ2xUZXh0dXJlVGFyZ2V0ICE9IEdyYXBo
aWNzQ29udGV4dDNEOjpFR0xJT1N1cmZhY2VUZXh0dXJlVGFyZ2V0KSB7CisgICAgICAgIExPRyhX
ZWJHTCwgIk1pc21hdGNoIGluIEVHTCB0ZXh0dXJlIHRhcmdldCAlZC4iLCBzdGF0aWNfY2FzdDxp
bnQ+KHRhcmdldCkpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CiAKICAgICBjb25z
dCBFR0xpbnQgc3VyZmFjZUF0dHJpYnV0ZXNbXSA9IHsKICAgICAgICAgRUdMX1dJRFRILCB3aWR0
aCwKQEAgLTc1Miw2ICs3NTYsOCBAQCB2b2lkKiBWaWRlb1RleHR1cmVDb3BpZXJDVjo6YXR0YWNo
SU9TdXJmYWNlVG9UZXh0dXJlKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaQogICAgICAgICBF
R0xfVEVYVFVSRV9JTlRFUk5BTF9GT1JNQVRfQU5HTEUsIHN0YXRpY19jYXN0PEVHTGludD4oaW50
ZXJuYWxGb3JtYXQpLAogICAgICAgICBFR0xfVEVYVFVSRV9GT1JNQVQsIEVHTF9URVhUVVJFX1JH
QkEsCiAgICAgICAgIEVHTF9URVhUVVJFX1RZUEVfQU5HTEUsIHN0YXRpY19jYXN0PEVHTGludD4o
dHlwZSksCisgICAgICAgIC8vIE9ubHkgaGFzIGFuIGVmZmVjdCBvbiB0aGUgaU9TIFNpbXVsYXRv
ci4KKyAgICAgICAgRUdMX0lPU1VSRkFDRV9VU0FHRV9ISU5UX0FOR0xFLCBFR0xfSU9TVVJGQUNF
X1JFQURfSElOVF9BTkdMRSwKICAgICAgICAgRUdMX05PTkUsIEVHTF9OT05FCiAgICAgfTsKICAg
ICBFR0xTdXJmYWNlIHBidWZmZXIgPSBFR0xfQ3JlYXRlUGJ1ZmZlckZyb21DbGllbnRCdWZmZXIo
ZGlzcGxheSwgRUdMX0lPU1VSRkFDRV9BTkdMRSwgc3VyZmFjZSwgbV9jb250ZXh0LT5wbGF0Zm9y
bUNvbmZpZygpLCBzdXJmYWNlQXR0cmlidXRlcyk7CkBAIC04NTEsMTAgKzg1NywxMiBAQCBib29s
IFZpZGVvVGV4dHVyZUNvcGllckNWOjpjb3B5SW1hZ2VUb1BsYXRmb3JtVGV4dHVyZShDVlBpeGVs
QnVmZmVyUmVmIGltYWdlLCBzaQogICAgIGF1dG8gdXZQbGFuZVdpZHRoID0gSU9TdXJmYWNlR2V0
V2lkdGhPZlBsYW5lKHN1cmZhY2UsIDEpOwogICAgIGF1dG8gdXZQbGFuZUhlaWdodCA9IElPU3Vy
ZmFjZUdldEhlaWdodE9mUGxhbmUoc3VyZmFjZSwgMSk7CiAKLSNpZiBVU0UoT1BFTkdMX0VTKSB8
fCAoVVNFKEFOR0xFKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKSkKKyNpZiBVU0UoT1BFTkdMX0VT
KQogICAgIEdDM0RlbnVtIHZpZGVvVGV4dHVyZVRhcmdldCA9IEdyYXBoaWNzQ29udGV4dDNEOjpU
RVhUVVJFXzJEOwotI2VsaWYgVVNFKE9QRU5HTCkgfHwgKFVTRShBTkdMRSkgJiYgIVBMQVRGT1JN
KElPU19GQU1JTFkpKQorI2VsaWYgVVNFKE9QRU5HTCkKICAgICBHQzNEZW51bSB2aWRlb1RleHR1
cmVUYXJnZXQgPSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9SRUNUQU5HTEVfQVJCOworI2Vs
aWYgVVNFKEFOR0xFKQorICAgIEdDM0RlbnVtIHZpZGVvVGV4dHVyZVRhcmdldCA9IEdyYXBoaWNz
Q29udGV4dDNEOjpJT1N1cmZhY2VUZXh0dXJlVGFyZ2V0OwogI2Vsc2UKICNlcnJvciBVbnN1cHBv
cnRlZCBjb25maWd1cmF0aW9uCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386713</attachid>
            <date>2020-01-03 14:01:23 -0800</date>
            <delta_ts>2020-01-04 14:33:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205618-20200103140123.patch</filename>
            <type>text/plain</type>
            <size>25942</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggOWU4ZDUxZWEzNjQ0ZWYxN2QyYTNmNGIxNzc3NDVlZjVjNjQwYTRjYi4uMjJjMTM2MmMzZDZh
ODRlMWQ2OGM1N2M1NDhjZWZlYTY0Zjg4NzQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM1IEBACisyMDE5LTAxLTAzICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBpT1MgU2ltdWxhdG9yIHRvIEFO
R0xFIGJhY2tlbmQgZm9yIFdlYkdMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDU2MTgKKworICAgICAgICBFeHRlbmQgRUdMX0FOR0xFX2lvc3VyZmFj
ZV9jbGllbnRfYnVmZmVyIGV4dGVuc2lvbiB0byByZXF1aXJlIHVzZQorICAgICAgICBvZiBURVhU
VVJFXzJEIHRhcmdldCBvbiBpT1MsIGFuZCB0byBwcm92aWRlIHJlYWQvd3JpdGUgdXNhZ2UgaGlu
dHMKKyAgICAgICAgZm9yIHRoZSBwYnVmZmVyIGNyZWF0ZWQgZnJvbSB0aGUgSU9TdXJmYWNlLgor
CisgICAgICAgIEVtdWxhdGUgbWlzc2luZyBbRUFHTENvbnRleHQgdGV4SW1hZ2VJT1N1cmZhY2U6
Li4uXSB2aWEgdGV4dHVyZQorICAgICAgICB1cGxvYWQgaW4gZWdsQmluZFRleEltYWdlIGFuZCBy
ZWFkYmFjayBpbiBlZ2xSZWxlYXNlVGV4SW1hZ2UuCisKKyAgICAgICAgVGhlc2UgY2hhbmdlcyB3
aWxsIGJlIHVwc3RyZWFtZWQgaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9w
L2FuZ2xlcHJvamVjdC9pc3N1ZXMvZGV0YWlsP2lkPTQyNTYgLgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZXh0ZW5zaW9ucy9FR0xfQU5HTEVfaW9z
dXJmYWNlX2NsaWVudF9idWZmZXIudHh0OgorICAgICAgICAqIGluY2x1ZGUvRUdML2VnbGV4dF9h
bmdsZS5oOgorICAgICAgICAqIHNyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9lYWdsL0Rpc3BsYXlF
QUdMLm1tOgorICAgICAgICAocng6OkRpc3BsYXlFQUdMOjppbml0aWFsaXplKToKKyAgICAgICAg
KiBzcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvZWFnbC9JT1N1cmZhY2VTdXJmYWNlRUFHTC5oOgor
ICAgICAgICAqIHNyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9lYWdsL0lPU3VyZmFjZVN1cmZhY2VF
QUdMLm1tOgorICAgICAgICAocng6OklPU3VyZmFjZVN1cmZhY2VFQUdMOjpJT1N1cmZhY2VTdXJm
YWNlRUFHTCk6CisgICAgICAgIChyeDo6SU9TdXJmYWNlU3VyZmFjZUVBR0w6OmJpbmRUZXhJbWFn
ZSk6CisgICAgICAgIChyeDo6SU9TdXJmYWNlU3VyZmFjZUVBR0w6OnJlbGVhc2VUZXhJbWFnZSk6
CisgICAgICAgIChyeDo6SU9TdXJmYWNlU3VyZmFjZUVBR0w6OnZhbGlkYXRlQXR0cmlidXRlcyk6
CisgICAgICAgIChyeDo6SU9TdXJmYWNlU3VyZmFjZUVBR0w6OmNyZWF0ZURlZmF1bHRGcmFtZWJ1
ZmZlcik6CisgICAgICAgIChyeDo6SU9TdXJmYWNlU3VyZmFjZUVBR0w6OmdldElPU3VyZmFjZUxv
Y2tPcHRpb25zIGNvbnN0KToKKyAgICAgICAgKiBzcmMvbGliQU5HTEUvdmFsaWRhdGlvbkVHTC5j
cHA6CisgICAgICAgIChlZ2w6OlZhbGlkYXRlQ3JlYXRlUGJ1ZmZlckZyb21DbGllbnRCdWZmZXIp
OgorCiAyMDE5LTEyLTI1ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbV2ViR0xdIEVuYWJsZSBBTkdMRSBieSBkZWZhdWx0IGZvciBDb2NvYSBwbGF0Zm9ybXMgKGV4
Y2VwdCBzaW11bGF0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmEzZDJiNDFlYjFkOWYwMDNhNTNiMTBhOGI0
ODRiNjRmY2NhYjIyNi4uOTJlZDI0MGQ4MGQwOTE2ZjE2MDE3MzI0NjllM2M0OWNkYmQ5ZmFjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE5LTAxLTAzICBLZW5uZXRoIFJ1c3NlbGwg
IDxrYnJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBpT1MgU2ltdWxh
dG9yIHRvIEFOR0xFIGJhY2tlbmQgZm9yIFdlYkdMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2MTgKKworICAgICAgICBSZWZhY3RvciB1c2Ugb2Yg
RUdMX0FOR0xFX2lvc3VyZmFjZV9jbGllbnRfYnVmZmVyIGV4dGVuc2lvbiB0bworICAgICAgICB1
bmlmb3JtbHkgdXNlIHJlY3Rhbmd1bGFyIHRleHR1cmVzIG9uIG1hY09TLCBhbmQgMkQgdGV4dHVy
ZXMgb24KKyAgICAgICAgaU9TLCBpbmNsdWRpbmcgdGhlIHNpbXVsYXRvci4gVGhpcyBzaG91bGQg
bWFrZSB0aGUgb24tZGV2aWNlIGlPUworICAgICAgICBjb2RlIHBhdGhzIG1vcmUgY29ycmVjdCBh
cyB3ZWxsLgorCisgICAgICAgIFBhc3MgdXNhZ2UgaGludHMsIG9ubHkgYWZmZWN0aW5nIHRoZSBp
T1MgU2ltdWxhdG9yLCB3aGVuIGNyZWF0aW5nCisgICAgICAgIGFsbCBwYnVmZmVycyBmcm9tIElP
U3VyZmFjZXMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBkb2VzIG5vdCB0dXJuIG9uIEFOR0xFIGZv
ciB0aGUgaU9TIFNpbXVsYXRvciB5ZXQ7IHRoYXQKKyAgICAgICAgd2lsbCBiZSBkb25lIGluIGEg
Zm9sbG93LW9uIHBhdGNoIGFmdGVyIG1vcmUgdGVzdGluZy4KKworICAgICAgICBDb3ZlcmVkIGJ5
IHRoZSBwcmVleGlzdGluZyBXZWJHTCBjb25mb3JtYW5jZSBzdWl0ZSBpbiB0aGUgbGF5b3V0Cisg
ICAgICAgIHRlc3RzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RCYXNlLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0M0RBTkdMRS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dDNEQ29jb2EubW06
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0Qp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW06CisgICAg
ICAgICgtW1dlYkdMTGF5ZXIgZGlzcGxheV0pOgorICAgICAgICAoLVtXZWJHTExheWVyIGFsbG9j
YXRlSU9TdXJmYWNlQmFja2luZ1N0b3JlV2l0aFNpemU6dXNpbmdBbHBoYTpdKToKKyAgICAgICAg
KC1bV2ViR0xMYXllciBiaW5kRnJhbWVidWZmZXJUb05leHRBdmFpbGFibGVTdXJmYWNlXSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VmlkZW9UZXh0dXJlQ29waWVyQ1Y6OmF0dGFjaElPU3VyZmFjZVRv
VGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1RleHR1cmVDb3BpZXJDVjo6Y29weUlt
YWdlVG9QbGF0Zm9ybVRleHR1cmUpOgorCiAyMDIwLTAxLTAzICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgUHV0IG1vcmUgV2ViQ29yZS9XZWJLaXQgSlMgb2Jq
ZWN0cyBpbnRvIElzb1N1YnNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9leHRlbnNpb25zL0VHTF9BTkdMRV9pb3N1cmZhY2VfY2xpZW50X2J1ZmZlci50eHQgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9leHRlbnNpb25zL0VHTF9BTkdMRV9pb3N1cmZhY2VfY2xpZW50
X2J1ZmZlci50eHQKaW5kZXggODIwNmVhYjM4OTQyYjRjZjYzN2U0NmVhZTYyMTVkN2NkMjdjYjgz
Ni4uNjkwOGU0ODVkNThjM2E4YmEwMmVlMDAxNmM1N2IzNmI4MTEyNTNmMiAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvZXh0ZW5zaW9ucy9FR0xfQU5HTEVfaW9zdXJmYWNlX2Ns
aWVudF9idWZmZXIudHh0CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2V4dGVuc2lvbnMv
RUdMX0FOR0xFX2lvc3VyZmFjZV9jbGllbnRfYnVmZmVyLnR4dApAQCAtMjEsNyArMjEsNyBAQCBT
dGF0dXMKICAgICBEcmFmdAogCiBWZXJzaW9uCi0gICAgVmVyc2lvbiAzLCBBdWcgMTMsIDIwMTkK
KyAgICBWZXJzaW9uIDQsIERlYyAyOCwgMjAxOQogCiBOdW1iZXIKIApAQCAtNTMsNiArNTMsNyBA
QCBOZXcgVG9rZW5zCiAgICAgICAgIEVHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSAgICAweDM0
NUIKICAgICAgICAgRUdMX1RFWFRVUkVfVFlQRV9BTkdMRSAgICAgICAgIDB4MzQ1QwogICAgICAg
ICBFR0xfVEVYVFVSRV9JTlRFUk5BTF9GT1JNQVRfQU5HTEUgMHgzNDVECisgICAgICAgIEVHTF9J
T1NVUkZBQ0VfVVNBR0VfSElOVF9BTkdMRSAweDM0OEEKIAogQWRkaXRpb25zIHRvIENoYXB0ZXIg
MyBvZiB0aGUgRUdMIDEuNCBTcGVjaWZpY2F0aW9uIChFR0wgRnVuY3Rpb25zIGFuZCBFcnJvcnMp
CiAKQEAgLTgwLDcgKzgxLDggQEAgQWRkaXRpb25zIHRvIENoYXB0ZXIgMyBvZiB0aGUgRUdMIDEu
NCBTcGVjaWZpY2F0aW9uIChFR0wgRnVuY3Rpb25zIGFuZCBFcnJvcnMpCiAgICAgICAtIEVHTF9U
RVhUVVJFX0ZPUk1BVCB3aXRoIGEgdmFsdWUgb2YgRUdMX1RFWFRVUkVfUkdCQQogICAgICAgLSBF
R0xfV0lEVEggd2l0aCBhIHZhbHVlIGJldHdlZW4gMSBhbmQgdGhlIHdpZHRoIG9mIDxidWZmZXI+
LgogICAgICAgLSBFR0xfSEVJR0hUIHdpdGggYSB2YWx1ZSBiZXR3ZWVuIDEgYW5kIHRoZSBoZWln
aHQgb2YgPGJ1ZmZlcj4uCi0gICAgICAtIEVHTF9URVhUVVJFX1RBUkdFVCB3aXRoIGEgdmFsdWUg
b2YgRUdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFCisgICAgICAtIEVHTF9URVhUVVJFX1RBUkdF
VCB3aXRoIGEgdmFsdWUgb2YgRUdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFIChtYWNPUykKKyAg
ICAgICAgb3IgRUdMX1RFWFRVUkVfMkQgKGlPUykKICAgICAgIC0gRUdMX0lPU1VSRkFDRV9QTEFO
RV9BTkdMRSB3aXRoIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCB0aGUgbnVtYmVyIG9mCiAgICAgcGxh
bmVzIG9mIDxidWZmZXI+IChleGNsdXNpdmUpLgogCkBAIC04OCw3ICs5MCwxNSBAQCBBZGRpdGlv
bnMgdG8gQ2hhcHRlciAzIG9mIHRoZSBFR0wgMS40IFNwZWNpZmljYXRpb24gKEVHTCBGdW5jdGlv
bnMgYW5kIEVycm9ycykKICAgICBFR0xfVEVYVFVSRV9JTlRFUk5BTF9GT1JNQVRfQU5HTEUgYXR0
cmlidXRlcyBtdXN0IGJlIG9uZSBvZiB0aGUKICAgICBjb21iaW5hdGlvbnMgbGlzdGVkIGluIHRh
YmxlIGVnbC5pb3N1cmZhY2UuZm9ybWF0cyBvciBhbgogICAgIEVHTF9CQURfUEFSQU1FVEVSIGlz
IGdlbmVyYXRlZC4gVGhlIGNvbWJpbmF0aW9uIG11c3QgYWxzbyBiZSBhIHZhbGlkCi0gICAgY29t
YmluYXRpb25zIGZvciBnbFRleEltYWdlMkQgb3IgRUdMX0JBRF9QQVJBTUVURVIgaXMgZ2VuZXJh
dGVkLiIKKyAgICBjb21iaW5hdGlvbnMgZm9yIGdsVGV4SW1hZ2UyRCBvciBFR0xfQkFEX1BBUkFN
RVRFUiBpcyBnZW5lcmF0ZWQuCisKKyAgICBUaGUgYXR0cmlidXRlIEVHTF9JT1NVUkZBQ0VfVVNB
R0VfSElOVF9BTkdMRSBtYXkgb3B0aW9uYWxseSBiZSBzcGVjaWZpZWQgYXMKKyAgICBhIGNvbWJp
bmF0aW9uIG9mIHRoZSBiaXRzIEVHTF9JT1NVUkZBQ0VfUkVBRF9ISU5UX0FOR0xFIGFuZAorICAg
IEVHTF9JT1NVUkZBQ0VfV1JJVEVfSElOVF9BTkdMRS4gT24gdGhlIGlPUyBTaW11bGF0b3IgcGxh
dGZvcm0sIHdoZXJlCisgICAgSU9TdXJmYWNlIHN1cHBvcnQgaXMgaW5jb21wbGV0ZSwgdGhlc2Ug
aGludHMgaW5kaWNhdGUgd2hldGhlciB0aGUgaW50ZW50IGlzCisgICAgdG8gcmVhZCBmcm9tIHRo
ZSBJT1N1cmZhY2UsIHdyaXRlIHRvIGl0LCBvciBib3RoLiBFeHBsaWNpdGx5IHBhc3NpbmcgMCBm
b3IKKyAgICB0aGlzIGF0dHJpYnV0ZSBpcyBlcXVpdmFsZW50IHRvIHNldHRpbmcgYm90aCB0aGUg
cmVhZCBhbmQgd3JpdGUgdXNhZ2UKKyAgICBiaXRzLiBUaGlzIGF0dHJpYnV0ZSBpcyBpZ25vcmVk
IG9uIG90aGVyIHBsYXRmb3Jtcy4iCiAKICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICBUZXh0
dXJlIFR5cGUgICAgICAgICAgICAgICBUZXh0dXJlIEludGVybmFsIEZvcm1hdApAQCAtMTIyLDMg
KzEzMiw1IEBAIFJldmlzaW9uIEhpc3RvcnkKICAgICBWZXJzaW9uIDEsIDIwMTcvMTIvMDYgLSBm
aXJzdCBkcmFmdC4KICAgICBWZXJzaW9uIDIsIDIwMTkvMDQvMDEgLSBBbGxvdyBNYWtlQ3VycmVu
dC4KICAgICBWZXJzaW9uIDMsIDIwMTkvMDgvMTMgLSBBbGxvdyBSR0IgaW50ZXJuYWwgZm9ybWF0
cworICAgIFZlcnNpb24gNCwgMjAxOS8xMi8yOCAtIEFkZCB1c2FnZSBoaW50OyByZXF1aXJlIFRF
WFRVUkVfUkVDVEFOR0xFIG9uIG1hY09TCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5k
IFRFWFRVUkVfMkQgb24gaU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9p
bmNsdWRlL0VHTC9lZ2xleHRfYW5nbGUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1
ZGUvRUdML2VnbGV4dF9hbmdsZS5oCmluZGV4IDJjM2JhNmJlZDRhZmQ5NDcyM2FlYTAyODQwZDlm
NTQxM2QxMDQ0MjYuLmQ1NzI5N2ExZGZjNWQ0NTFiZGFlMDY4NTI2NTRjZWRiMDdkMWQ4NzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvRUdML2VnbGV4dF9hbmds
ZS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvRUdML2VnbGV4dF9hbmds
ZS5oCkBAIC0xOTQsNiArMTk0LDkgQEAgRUdMQVBJIEVHTGludCBFR0xBUElFTlRSWSBlZ2xQcm9n
cmFtQ2FjaGVSZXNpemVBTkdMRShFR0xEaXNwbGF5IGRweSwgRUdMaW50IGxpbWkKICNkZWZpbmUg
RUdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFIDB4MzQ1QgogI2RlZmluZSBFR0xfVEVYVFVSRV9U
WVBFX0FOR0xFIDB4MzQ1QwogI2RlZmluZSBFR0xfVEVYVFVSRV9JTlRFUk5BTF9GT1JNQVRfQU5H
TEUgMHgzNDVECisjZGVmaW5lIEVHTF9JT1NVUkZBQ0VfVVNBR0VfSElOVF9BTkdMRSAweDM0OEEK
KyNkZWZpbmUgRUdMX0lPU1VSRkFDRV9SRUFEX0hJTlRfQU5HTEUgMHgwMDAxCisjZGVmaW5lIEVH
TF9JT1NVUkZBQ0VfV1JJVEVfSElOVF9BTkdMRSAweDAwMDIKICNlbmRpZiAvKiBFR0xfQU5HTEVf
aW9zdXJmYWNlX2NsaWVudF9idWZmZXIgKi8KIAogI2lmbmRlZiBFR0xfQU5HTEVfY3JlYXRlX2Nv
bnRleHRfZXh0ZW5zaW9uc19lbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvZWFnbC9EaXNwbGF5RUFHTC5tbSBiL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9lYWdsL0Rpc3BsYXlF
QUdMLm1tCmluZGV4IGE0ZjQzMDk2Y2FiZjI5YzAzNjlkZDE0ZTQ5MTM2MmM2Y2MzZThiMTUuLjQy
YjZjZmZjNTBhZTcwZTY1NzI5ODllZmMwMjhlMDIwMjFiMDRmOTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9lYWdsL0Rpc3BsYXlF
QUdMLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJl
ci9nbC9lYWdsL0Rpc3BsYXlFQUdMLm1tCkBAIC00OCw4ICs0OCw2IEBACiAKICNkZWZpbmUgR0xF
U19TSUxFTkNFX0RFUFJFQ0FUSU9OCiAKLSNpZiAhZGVmaW5lZChBTkdMRV9QTEFURk9STV9JT1Nf
U0lNVUxBVE9SKQotCiBuYW1lc3BhY2UKIHsKIApAQCAtNTgsOCArNTYsNiBAQCBjb25zdCBjaGFy
ICprT3BlbkdMRVNEeWxpYk5hbWUgPQogCiB9CiAKLSNlbmRpZgotCiBuYW1lc3BhY2UgcngKIHsK
IApAQCAtOTEsOSArODcsNiBAQCBlZ2w6OkVycm9yIERpc3BsYXlFQUdMOjppbml0aWFsaXplKGVn
bDo6RGlzcGxheSAqZGlzcGxheSkKIHsKICAgICBtRUdMRGlzcGxheSA9IGRpc3BsYXk7CiAKLSNp
ZiBkZWZpbmVkKEFOR0xFX1BMQVRGT1JNX0lPU19TSU1VTEFUT1IpCi0gICAgcmV0dXJuIGVnbDo6
RWdsTm90SW5pdGlhbGl6ZWQoKSA8PCAiQU5HTEUgd2l0aCBFQUdMIG5vdCBzdXBwb3J0ZWQgb24g
aU9TIFNpbXVsYXRvciBkdWUgdG8gbGFjayBvZiBJT1N1cmZhY2Ugc3VwcG9ydC4iOwotI2Vsc2UK
ICAgICBhbmdsZTo6U3lzdGVtSW5mbyBpbmZvOwogICAgIGlmICghYW5nbGU6OkdldFN5c3RlbUlu
Zm8oJmluZm8pKQogICAgIHsKQEAgLTEyNiw3ICsxMTksNiBAQCBlZ2w6OkVycm9yIERpc3BsYXlF
QUdMOjppbml0aWFsaXplKGVnbDo6RGlzcGxheSAqZGlzcGxheSkKICAgICB9CiAKICAgICByZXR1
cm4gRGlzcGxheUdMOjppbml0aWFsaXplKGRpc3BsYXkpOwotI2VuZGlmCiB9CiAKIHZvaWQgRGlz
cGxheUVBR0w6OnRlcm1pbmF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wvZWFnbC9JT1N1cmZhY2VTdXJmYWNlRUFHTC5oIGIv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL2VhZ2wvSU9T
dXJmYWNlU3VyZmFjZUVBR0wuaAppbmRleCAyYzQwMDBhYzg0YTAxNWFkMDg0M2E0YzAwZjlkOGU3
NjRmMmJiNjY4Li44N2MxYjkzNDJkMmYwMGVkMzY2MTgxYzI1M2EyOTE3ZDc3ZmM1YTliIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvZ2wv
ZWFnbC9JT1N1cmZhY2VTdXJmYWNlRUFHTC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9lYWdsL0lPU3VyZmFjZVN1cmZhY2VFQUdMLmgKQEAg
LTI5LDggKzI5LDcgQEAKICNpbmNsdWRlICJsaWJBTkdMRS9yZW5kZXJlci9nbC9TdXJmYWNlR0wu
aCIKICNpbmNsdWRlICJsaWJBTkdMRS9yZW5kZXJlci9nbC9lYWdsL0Rpc3BsYXlFQUdMLmgiCiAK
LXN0cnVjdCBfX0lPU3VyZmFjZTsKLXR5cGVkZWYgX19JT1N1cmZhY2UgKklPU3VyZmFjZVJlZjsK
KyNpbmNsdWRlIDxJT1N1cmZhY2UvSU9TdXJmYWNlUmVmLmg+CiAKIG5hbWVzcGFjZSBlZ2wKIHsK
QEAgLTg1LDYgKzg0LDEwIEBAIGNsYXNzIElPU3VyZmFjZVN1cmZhY2VFQUdMIDogcHVibGljIFN1
cmZhY2VHTAogICBwcml2YXRlOgogICAgIGFuZ2xlOjpSZXN1bHQgaW5pdGlhbGl6ZUFscGhhQ2hh
bm5lbChjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwgR0x1aW50IHRleHR1cmUpOwogCisjaWYg
ZGVmaW5lZChBTkdMRV9QTEFURk9STV9JT1NfU0lNVUxBVE9SKQorICAgIElPU3VyZmFjZUxvY2tP
cHRpb25zIGdldElPU3VyZmFjZUxvY2tPcHRpb25zKCkgY29uc3Q7CisjZW5kaWYKKwogICAgIEVB
R0xDb250ZXh0T2JqIG1FQUdMQ29udGV4dDsKICAgICBJT1N1cmZhY2VSZWYgbUlPU3VyZmFjZTsK
ICAgICBpbnQgbVdpZHRoOwpAQCAtOTMsNiArOTYsMTEgQEAgY2xhc3MgSU9TdXJmYWNlU3VyZmFj
ZUVBR0wgOiBwdWJsaWMgU3VyZmFjZUdMCiAgICAgaW50IG1Gb3JtYXRJbmRleDsKIAogICAgIGJv
b2wgbUFscGhhSW5pdGlhbGl6ZWQ7CisjaWYgZGVmaW5lZChBTkdMRV9QTEFURk9STV9JT1NfU0lN
VUxBVE9SKQorICAgIEdMdWludCBtQm91bmRUZXh0dXJlSUQ7CisgICAgYm9vbCBtVXBsb2FkRnJv
bUlPU3VyZmFjZTsKKyAgICBib29sIG1SZWFkYmFja1RvSU9TdXJmYWNlOworI2VuZGlmCiB9Owog
CiB9ICAvLyBuYW1lc3BhY2UgcngKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L3NyYy9saWJBTkdMRS9yZW5kZXJlci9nbC9lYWdsL0lPU3VyZmFjZVN1cmZhY2VFQUdMLm1tIGIv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL2VhZ2wvSU9T
dXJmYWNlU3VyZmFjZUVBR0wubW0KaW5kZXggOTZhNGRhM2QwY2EyNTA4MGQ4OTg4MTU3N2EzYjI4
NzcyMjFmOTc0Yi4uMjVjYTlhOWZjZTE1MDEyNTkyNzRjNmRiNjdkMDc0OGU0ODQxNGU3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2ds
L2VhZ2wvSU9TdXJmYWNlU3VyZmFjZUVBR0wubW0KKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL2dsL2VhZ2wvSU9TdXJmYWNlU3VyZmFjZUVBR0wubW0K
QEAgLTExOCw2ICsxMTgsMTcgQEAgSU9TdXJmYWNlU3VyZmFjZUVBR0w6OklPU3VyZmFjZVN1cmZh
Y2VFQUdMKGNvbnN0IGVnbDo6U3VyZmFjZVN0YXRlICZzdGF0ZSwKICAgICBBU1NFUlQobUZvcm1h
dEluZGV4ID49IDApOwogCiAgICAgbUFscGhhSW5pdGlhbGl6ZWQgPSAhaGFzRW11bGF0ZWRBbHBo
YUNoYW5uZWwoKTsKKworI2lmIGRlZmluZWQoQU5HTEVfUExBVEZPUk1fSU9TX1NJTVVMQVRPUikK
KyAgICBtQm91bmRUZXh0dXJlSUQgPSAwOworICAgIEVHTEF0dHJpYiB1c2FnZUhpbnQgPSBhdHRy
aWJzLmdldChFR0xfSU9TVVJGQUNFX1VTQUdFX0hJTlRfQU5HTEUsIDApOworICAgIGlmICh1c2Fn
ZUhpbnQgPT0gMCkKKyAgICB7CisgICAgICB1c2FnZUhpbnQgPSBFR0xfSU9TVVJGQUNFX1JFQURf
SElOVF9BTkdMRSB8IEVHTF9JT1NVUkZBQ0VfV1JJVEVfSElOVF9BTkdMRTsKKyAgICB9CisgICAg
bVVwbG9hZEZyb21JT1N1cmZhY2UgPSAoKHVzYWdlSGludCAmIEVHTF9JT1NVUkZBQ0VfUkVBRF9I
SU5UX0FOR0xFKSAhPSAwKTsKKyAgICBtUmVhZGJhY2tUb0lPU3VyZmFjZSA9ICgodXNhZ2VIaW50
ICYgRUdMX0lPU1VSRkFDRV9XUklURV9ISU5UX0FOR0xFKSAhPSAwKTsKKyNlbmRpZgogfQogCiBJ
T1N1cmZhY2VTdXJmYWNlRUFHTDo6fklPU3VyZmFjZVN1cmZhY2VFQUdMKCkKQEAgLTE3MCw3ICsx
ODEsNiBAQCBlZ2w6OkVycm9yIElPU3VyZmFjZVN1cmZhY2VFQUdMOjpiaW5kVGV4SW1hZ2UoY29u
c3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBnbDo6VGV4dHVyZSAqdGV4dHVyZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEVHTGludCkKIHsKLSNpZiAhZGVmaW5lZChBTkdMRV9Q
TEFURk9STV9JT1NfU0lNVUxBVE9SKQogICAgIFN0YXRlTWFuYWdlckdMICpzdGF0ZU1hbmFnZXIg
PSBHZXRTdGF0ZU1hbmFnZXJHTChjb250ZXh0KTsKIAogICAgIGNvbnN0IFRleHR1cmVHTCAqdGV4
dHVyZUdMID0gR2V0SW1wbEFzPFRleHR1cmVHTD4odGV4dHVyZSk7CkBAIC0xNzgsNiArMTg4LDcg
QEAgZWdsOjpFcnJvciBJT1N1cmZhY2VTdXJmYWNlRUFHTDo6YmluZFRleEltYWdlKGNvbnN0IGds
OjpDb250ZXh0ICpjb250ZXh0LAogICAgIHN0YXRlTWFuYWdlci0+YmluZFRleHR1cmUoZ2w6OlRl
eHR1cmVUeXBlOjpfMkQsIHRleHR1cmVJRCk7CiAgICAgY29uc3QgYXV0byAmZm9ybWF0ID0ga0lP
U3VyZmFjZUZvcm1hdHNbbUZvcm1hdEluZGV4XTsKIAorI2lmICFkZWZpbmVkKEFOR0xFX1BMQVRG
T1JNX0lPU19TSU1VTEFUT1IpCiAgICAgaWYgKCFbbUVBR0xDb250ZXh0IHRleEltYWdlSU9TdXJm
YWNlOm1JT1N1cmZhY2UgdGFyZ2V0OkdMX1RFWFRVUkVfMkQgaW50ZXJuYWxGb3JtYXQ6Zm9ybWF0
Lm5hdGl2ZUludGVybmFsRm9ybWF0IHdpZHRoOm1XaWR0aCBoZWlnaHQ6bUhlaWdodCBmb3JtYXQ6
Zm9ybWF0Lm5hdGl2ZUZvcm1hdCB0eXBlOmZvcm1hdC5uYXRpdmVUeXBlIHBsYW5lOm1QbGFuZV0p
IHsKICAgICAgICAgcmV0dXJuIGVnbDo6RWdsQ29udGV4dExvc3QoKSA8PCAiRUFHTENvbnRleHQg
dGV4SW1hZ2VJT1N1cmZhY2UyRCBmYWlsZWQuIjsKICAgICB9CkBAIC0xODYsMTggKzE5Nyw1NSBA
QCBlZ2w6OkVycm9yIElPU3VyZmFjZVN1cmZhY2VFQUdMOjpiaW5kVGV4SW1hZ2UoY29uc3QgZ2w6
OkNvbnRleHQgKmNvbnRleHQsCiAgICAgewogICAgICAgICByZXR1cm4gZWdsOjpFZ2xDb250ZXh0
TG9zdCgpIDw8ICJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBJT1N1cmZhY2UgYWxwaGEgY2hhbm5lbC4i
OwogICAgIH0KKyNlbHNlIC8vICFkZWZpbmVkKEFOR0xFX1BMQVRGT1JNX0lPU19TSU1VTEFUT1Ip
CisgICAgY29uc3QgRnVuY3Rpb25zR0wgKmZ1bmN0aW9ucyA9IEdldEZ1bmN0aW9uc0dMKGNvbnRl
eHQpOworCisgICAgSU9TdXJmYWNlTG9jayhtSU9TdXJmYWNlLCBnZXRJT1N1cmZhY2VMb2NrT3B0
aW9ucygpLCBudWxscHRyKTsKKyAgICB2b2lkKiB0ZXh0dXJlRGF0YSA9IG51bGxwdHI7CisgICAg
aWYgKG1VcGxvYWRGcm9tSU9TdXJmYWNlKQorICAgIHsKKyAgICAgICAgLy8gVE9ETyhrYnIpOiBw
b3NzaWJseSBtb3JlIHN0YXRlIHRvIGJlIHNldCBoZXJlLCBpbmNsdWRpbmcgc2V0dGluZyBhbnkK
KyAgICAgICAgLy8gcGl4ZWwgdW5wYWNrIGJ1ZmZlciB0byAwIHdoZW4gdXNpbmcgRVMgMy4wIGNv
bnRleHRzLgorICAgICAgICBnbDo6UGl4ZWxVbnBhY2tTdGF0ZSBkZWZhdWx0VW5wYWNrU3RhdGU7
CisgICAgICAgIHN0YXRlTWFuYWdlci0+c2V0UGl4ZWxVbnBhY2tTdGF0ZShkZWZhdWx0VW5wYWNr
U3RhdGUpOworICAgICAgICB0ZXh0dXJlRGF0YSA9IElPU3VyZmFjZUdldEJhc2VBZGRyZXNzKG1J
T1N1cmZhY2UpOworICAgIH0KKworICAgIC8vIFRPRE8oa2JyKTogY29uc2lkZXIgdHJ5aW5nIHRv
IG9wdGltaXplIGF3YXkgdGV4dHVyZSByZWFsbG9jYXRpb25zIGJ5CisgICAgLy8ga2VlcGluZyB0
cmFjayBvZiB3aGljaCB0ZXh0dXJlcyBoYXZlIGFscmVhZHkgYmVlbiBhbGxvY2F0ZWQuCisgICAg
ZnVuY3Rpb25zLT50ZXhJbWFnZTJEKEdMX1RFWFRVUkVfMkQsIDAsIGZvcm1hdC5uYXRpdmVJbnRl
cm5hbEZvcm1hdCwgbVdpZHRoLCBtSGVpZ2h0LCAwLCBmb3JtYXQubmF0aXZlRm9ybWF0LCBmb3Jt
YXQubmF0aXZlVHlwZSwgdGV4dHVyZURhdGEpOworCisgICAgbUJvdW5kVGV4dHVyZUlEID0gdGV4
dHVyZUlEOworI2VuZGlmIC8vICFkZWZpbmVkKEFOR0xFX1BMQVRGT1JNX0lPU19TSU1VTEFUT1Ip
CiAKICAgICByZXR1cm4gZWdsOjpOb0Vycm9yKCk7Ci0jZWxzZQotICAgIHJldHVybiBlZ2w6OkVn
bENvbnRleHRMb3N0KCkgPDwgIkVBR0xDb250ZXh0IElPU3VyZmFjZSBub3Qgc3VwcG9ydGVkIGlu
IHRoZSBzaW11bGF0b3IuIjsKLSNlbmRpZgogfQogCi0KIGVnbDo6RXJyb3IgSU9TdXJmYWNlU3Vy
ZmFjZUVBR0w6OnJlbGVhc2VUZXhJbWFnZShjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwgRUdM
aW50IGJ1ZmZlcikKIHsKICAgICBjb25zdCBGdW5jdGlvbnNHTCAqZnVuY3Rpb25zID0gR2V0RnVu
Y3Rpb25zR0woY29udGV4dCk7CisjaWYgIWRlZmluZWQoQU5HTEVfUExBVEZPUk1fSU9TX1NJTVVM
QVRPUikKICAgICBmdW5jdGlvbnMtPmZsdXNoKCk7CisjZWxzZSAvLyAhZGVmaW5lZChBTkdMRV9Q
TEFURk9STV9JT1NfU0lNVUxBVE9SKQorICAgIGlmIChtUmVhZGJhY2tUb0lPU3VyZmFjZSkKKyAg
ICB7CisgICAgICAgIFN0YXRlTWFuYWdlckdMICpzdGF0ZU1hbmFnZXIgPSBHZXRTdGF0ZU1hbmFn
ZXJHTChjb250ZXh0KTsKKyAgICAgICAgR0x1aW50IHRlbXBGQk8gPSAwOworICAgICAgICBmdW5j
dGlvbnMtPmdlbkZyYW1lYnVmZmVycygxLCAmdGVtcEZCTyk7CisgICAgICAgIHN0YXRlTWFuYWdl
ci0+YmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCB0ZW1wRkJPKTsKKyAgICAgICAgZnVu
Y3Rpb25zLT5mcmFtZWJ1ZmZlclRleHR1cmUyRChHTF9GUkFNRUJVRkZFUiwgR0xfQ09MT1JfQVRU
QUNITUVOVDAsIEdMX1RFWFRVUkVfMkQsIG1Cb3VuZFRleHR1cmVJRCwgMCk7CisgICAgICAgIGds
OjpQaXhlbFBhY2tTdGF0ZSBzdGF0ZTsKKyAgICAgICAgc3RhdGUuYWxpZ25tZW50ID0gMTsKKyAg
ICAgICAgc3RhdGVNYW5hZ2VyLT5zZXRQaXhlbFBhY2tTdGF0ZShzdGF0ZSk7CisgICAgICAgIC8v
IFRPRE8oa2JyKTogcG9zc2libHkgbW9yZSBzdGF0ZSB0byBiZSBzZXQgaGVyZSwgaW5jbHVkaW5n
IHNldHRpbmcgYW55CisgICAgICAgIC8vIHBpeGVsIHBhY2sgYnVmZmVyIHRvIDAgd2hlbiB1c2lu
ZyBFUyAzLjAgY29udGV4dHMuCisgICAgICAgIGNvbnN0IGF1dG8gJmZvcm1hdCA9IGtJT1N1cmZh
Y2VGb3JtYXRzW21Gb3JtYXRJbmRleF07CisgICAgICAgIGZ1bmN0aW9ucy0+cmVhZFBpeGVscygw
LCAwLCBtV2lkdGgsIG1IZWlnaHQsIGZvcm1hdC5uYXRpdmVGb3JtYXQsIGZvcm1hdC5uYXRpdmVU
eXBlLCBJT1N1cmZhY2VHZXRCYXNlQWRkcmVzcyhtSU9TdXJmYWNlKSk7CisgICAgfQorCisgICAg
SU9TdXJmYWNlVW5sb2NrKG1JT1N1cmZhY2UsIGdldElPU3VyZmFjZUxvY2tPcHRpb25zKCksIG51
bGxwdHIpOworI2VuZGlmIC8vICFkZWZpbmVkKEFOR0xFX1BMQVRGT1JNX0lPU19TSU1VTEFUT1Ip
CisKICAgICByZXR1cm4gZWdsOjpOb0Vycm9yKCk7CiB9CiAKQEAgLTIzMiw3ICsyODAsNiBAQCBF
R0xpbnQgSU9TdXJmYWNlU3VyZmFjZUVBR0w6OmdldFN3YXBCZWhhdmlvcigpIGNvbnN0CiBib29s
IElPU3VyZmFjZVN1cmZhY2VFQUdMOjp2YWxpZGF0ZUF0dHJpYnV0ZXMoRUdMQ2xpZW50QnVmZmVy
IGJ1ZmZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IGVnbDo6QXR0cmlidXRlTWFwICZhdHRyaWJzKQogewotI2lmICFkZWZpbmVkKEFOR0xFX1BM
QVRGT1JNX0lPU19TSU1VTEFUT1IpCiAgICAgSU9TdXJmYWNlUmVmIGlvU3VyZmFjZSA9IHJlaW50
ZXJwcmV0X2Nhc3Q8SU9TdXJmYWNlUmVmPihidWZmZXIpOwogCiAgICAgLy8gVGhlIHBsYW5lIG11
c3QgZXhpc3QgZm9yIHRoaXMgSU9TdXJmYWNlLiBJT1N1cmZhY2VHZXRQbGFuZUNvdW50IGNhbiBy
ZXR1cm4gMCBmb3Igbm9uLXBsYW5hcgpAQCAtMjczLDkgKzMyMCw2IEBAIGJvb2wgSU9TdXJmYWNl
U3VyZmFjZUVBR0w6OnZhbGlkYXRlQXR0cmlidXRlcyhFR0xDbGllbnRCdWZmZXIgYnVmZmVyLAog
ICAgIH0KIAogICAgIHJldHVybiB0cnVlOwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5k
aWYKIH0KIAogLy8gV3JhcHMgYSBGcmFtZWJ1ZmZlckdMIHRvIGhvb2sgdGhlIGRlc3Ryb3kgZnVu
Y3Rpb24gdG8gZGVsZXRlIHRoZSB0ZXh0dXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUKQEAgLTMxOCw3
ICszNjIsNyBAQCBGcmFtZWJ1ZmZlckltcGwgKklPU3VyZmFjZVN1cmZhY2VFQUdMOjpjcmVhdGVE
ZWZhdWx0RnJhbWVidWZmZXIoY29uc3QgZ2w6OkNvbnRleAogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CiAjZWxzZQotICAgIEVSUigpIDw8ICJJT1N1cmZhY2VzIG5vdCBzdXBwb3J0ZWQg
b24gaU9TIFNpbXVsYXRvciI7CisgICAgRVJSKCkgPDwgIklPU3VyZmFjZXMgd2l0aCBPcGVuR0wg
RVMgbm90IHN1cHBvcnRlZCBvbiBpT1MgU2ltdWxhdG9yIjsKICNlbmRpZgogCiAgICAgaWYgKElz
RXJyb3IoaW5pdGlhbGl6ZUFscGhhQ2hhbm5lbChjb250ZXh0LCB0ZXh0dXJlKSkpCkBAIC0zNTcs
NiArNDAxLDE4IEBAIGJvb2wgSU9TdXJmYWNlU3VyZmFjZUVBR0w6Omhhc0VtdWxhdGVkQWxwaGFD
aGFubmVsKCkgY29uc3QKICAgICByZXR1cm4gZm9ybWF0LmludGVybmFsRm9ybWF0ID09IEdMX1JH
QjsKIH0KIAorI2lmIGRlZmluZWQoQU5HTEVfUExBVEZPUk1fSU9TX1NJTVVMQVRPUikKK0lPU3Vy
ZmFjZUxvY2tPcHRpb25zIElPU3VyZmFjZVN1cmZhY2VFQUdMOjpnZXRJT1N1cmZhY2VMb2NrT3B0
aW9ucygpIGNvbnN0Cit7CisgICAgSU9TdXJmYWNlTG9ja09wdGlvbnMgb3B0aW9ucyA9IDA7Cisg
ICAgaWYgKCFtUmVhZGJhY2tUb0lPU3VyZmFjZSkKKyAgICB7CisgICAgICAgIG9wdGlvbnMgfD0g
a0lPU3VyZmFjZUxvY2tSZWFkT25seTsKKyAgICB9CisgICAgcmV0dXJuIG9wdGlvbnM7Cit9Cisj
ZW5kaWYgLy8gZGVmaW5lZChBTkdMRV9QTEFURk9STV9JT1NfU0lNVUxBVE9SKQorCiB9ICAvLyBu
YW1lc3BhY2UgcngKIAogI2VuZGlmICAvLyBkZWZpbmVkKEFOR0xFX1BMQVRGT1JNX0lPUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS92YWxpZGF0aW9u
RUdMLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS92YWxpZGF0aW9u
RUdMLmNwcAppbmRleCBmZjRjZWE3NDkyZmMwY2Q5MWY4MjY2OWM3ZmQxMDBhYzU0ZmNmMDAyLi5j
NDA0NTBlYTliNzM5YjMzZTMyNDM5OWVhYTk3YzU3ZDU3ZWQxMmE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvdmFsaWRhdGlvbkVHTC5jcHAKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3ZhbGlkYXRpb25FR0wuY3BwCkBA
IC0xNzE2LDYgKzE3MTYsMTIgQEAgRXJyb3IgVmFsaWRhdGVDcmVhdGVQYnVmZmVyRnJvbUNsaWVu
dEJ1ZmZlcihEaXNwbGF5ICpkaXNwbGF5LAogICAgICAgICAgICAgICAgICAgICByZXR1cm4gRWds
QmFkQXR0cmlidXRlKCkgPDwgIjxidWZ0eXBlPiBkb2Vzbid0IHN1cHBvcnQgc2V0dGluZyBHTCBj
b2xvcnNwYWNlIjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIEVHTF9JT1NVUkZBQ0VfVVNBR0VfSElOVF9BTkdMRToKKyAgICAgICAg
ICAgICAgICBpZiAodmFsdWUgJiB+KEVHTF9JT1NVUkZBQ0VfUkVBRF9ISU5UX0FOR0xFIHwgRUdM
X0lPU1VSRkFDRV9XUklURV9ISU5UX0FOR0xFKSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBFZ2xCYWRBdHRyaWJ1dGUoKSA8PCAiSU9TdXJmYWNlIHVzYWdl
IGhpbnQgbXVzdCBvbmx5IGNvbnRhaW4gUkVBRCBvciBXUklURSI7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAg
ICAgICAgICByZXR1cm4gRWdsQmFkQXR0cmlidXRlKCk7CiAgICAgICAgIH0KQEAgLTE3NzUsMTAg
KzE3ODEsMTkgQEAgRXJyb3IgVmFsaWRhdGVDcmVhdGVQYnVmZmVyRnJvbUNsaWVudEJ1ZmZlcihE
aXNwbGF5ICpkaXNwbGF5LAogCiAgICAgaWYgKGJ1ZnR5cGUgPT0gRUdMX0lPU1VSRkFDRV9BTkdM
RSkKICAgICB7CisjaWYgQU5HTEVfUExBVEZPUk1fTUFDT1MKICAgICAgICAgaWYgKHRleHR1cmVU
YXJnZXQgIT0gRUdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFKQogICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gRWdsQmFkQXR0cmlidXRlKCkgPDwgIkVHTF9JT1NVUkZBQ0UgcmVxdWlyZXMg
dGhlIEVHTF9URVhUVVJFX1JFQ1RBTkdMRSB0YXJnZXQiOworICAgICAgICAgICAgcmV0dXJuIEVn
bEJhZEF0dHJpYnV0ZSgpIDw8ICJFR0xfSU9TVVJGQUNFIHJlcXVpcmVzIHRoZSBFR0xfVEVYVFVS
RV9SRUNUQU5HTEUgdGFyZ2V0IG9uIGRlc2t0b3AgbWFjT1MiOworICAgICAgICB9CisjZWxpZiBB
TkdMRV9QTEFURk9STV9JT1MKKyAgICAgICAgaWYgKHRleHR1cmVUYXJnZXQgIT0gRUdMX1RFWFRV
UkVfMkQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBFZ2xCYWRBdHRyaWJ1dGUoKSA8
PCAiRUdMX0lPU1VSRkFDRSByZXF1aXJlcyB0aGUgRUdMX1RFWFRVUkVfMkQgdGFyZ2V0IG9uIGlP
UyI7CiAgICAgICAgIH0KKyNlbHNlCisgICAgICAgIHJldHVybiBFZ2xCYWRBdHRyaWJ1dGUoKSA8
PCAiRUdMX0lPU1VSRkFDRSBzdXBwb3J0ZWQgb25seSBvbiBtYWNPUyBwbGF0Zm9ybXMiOworI2Vu
ZGlmCiAKICAgICAgICAgaWYgKHRleHR1cmVGb3JtYXQgIT0gRUdMX1RFWFRVUkVfUkdCQSkKICAg
ICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0M0RCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQzREJhc2UuaAppbmRleCA2YjhjOWFkYmEzNWMzYjZjZDRmZTU2ZDg2ZTIx
OWQxYzc4MDk3ZThmLi5kYTU3ZGZhOWJkN2U2OWViZWRlYzRlYzliMmVlYTRiOGU5MzAxZmU1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQzREJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQzREJhc2UuaApAQCAtNzM0LDYgKzczNCwyMSBAQCBwdWJsaWM6CiAgICAgICAgIE5v
bmUsCiAgICAgfTsKIAorI2lmIFVTRShBTkdMRSkKKyAgICBlbnVtIHsKKyAgICAgICAgLy8gVGhl
c2UgY29uc3RhbnRzIGFyZSByZWRlZmluZWQgaGVyZSBmcm9tIEFOR0xFJ3MgT3BlbkdMIEVTIGhl
YWRlcnMgdG8KKyAgICAgICAgLy8gcHJvdmlkZSBhIHNpbmdsZSBwbGFjZSB3aGVyZSBtdWx0aXBs
ZSBwb3J0aW9ucyBvZiBwbGF0Zm9ybSBjb2RlIGNhbgorICAgICAgICAvLyByZWZlcmVuY2UgdGhl
bS4KKyNpZiBQTEFURk9STShNQUMpCisgICAgICAgIElPU3VyZmFjZVRleHR1cmVUYXJnZXQgPSBU
RVhUVVJFX1JFQ1RBTkdMRV9BUkIsIC8vIGFsc28gR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUK
KyAgICAgICAgRUdMSU9TdXJmYWNlVGV4dHVyZVRhcmdldCA9IDB4MzQ1QiwgLy8gRUdMX1RFWFRV
UkVfUkVDVEFOR0xFX0FOR0xFCisjZWxzZQorICAgICAgICBJT1N1cmZhY2VUZXh0dXJlVGFyZ2V0
ID0gVEVYVFVSRV8yRCwKKyAgICAgICAgRUdMSU9TdXJmYWNlVGV4dHVyZVRhcmdldCA9IDB4MzA1
RiwgLy8gRUdMX1RFWFRVUkVfMkQKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCisgICAgfTsKKyNl
bmRpZiAvLyBVU0UoQU5HTEUpCisKICAgICB2aXJ0dWFsIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0
M0QgcGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFBs
YXRmb3JtM0RPYmplY3QgcGxhdGZvcm1UZXh0dXJlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwg
UGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dDNEQU5H
TEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3ND
b250ZXh0M0RBTkdMRS5jcHAKaW5kZXggNWFmZThiMGJkYTQ3NTdiNDc1YmIxYTkzZTExNzIxNDNi
NDI5YWY4My4uZmY0NWE5ZjQ1YzBlMmEyMjRiYzgyZWYyNjc0ZTIxODdiZmFiNGM5NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250
ZXh0M0RBTkdMRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5n
bGUvR3JhcGhpY3NDb250ZXh0M0RBTkdMRS5jcHAKQEAgLTE5Niw3ICsxOTYsNyBAQCBib29sIEdy
YXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhjb25zdCBJbnRTaXplJiBzaXplKQogI2lmIFBM
QVRGT1JNKENPQ09BKQogICAgIGFsbG9jYXRlSU9TdXJmYWNlQmFja2luZ1N0b3JlKEludFNpemUo
d2lkdGgsIGhlaWdodCkpOwogICAgIHVwZGF0ZUZyYW1lYnVmZmVyVGV4dHVyZUJhY2tpbmdTdG9y
ZUZyb21MYXllcigpOwotICAgIGdsOjpGcmFtZWJ1ZmZlclRleHR1cmUyRChHTF9GUkFNRUJVRkZF
UiwgR0xfQ09MT1JfQVRUQUNITUVOVDAsIEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBtX3Rl
eHR1cmUsIDApOworICAgIGdsOjpGcmFtZWJ1ZmZlclRleHR1cmUyRChHTF9GUkFNRUJVRkZFUiwg
R0xfQ09MT1JfQVRUQUNITUVOVDAsIEdyYXBoaWNzQ29udGV4dDNEOjpJT1N1cmZhY2VUZXh0dXJl
VGFyZ2V0LCBtX3RleHR1cmUsIDApOwogI2VsaWYgUExBVEZPUk0oR1RLKQogICAgIGdsOjpCaW5k
VGV4dHVyZShHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgbV90ZXh0dXJlKTsKICAgICBnbDo6
VGV4SW1hZ2UyRChHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgMCwgbV9pbnRlcm5hbENvbG9y
Rm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCAwLCBjb2xvckZvcm1hdCwgR0xfVU5TSUdORURfQllURSwg
MCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9H
cmFwaGljc0NvbnRleHQzRENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvR3JhcGhpY3NDb250ZXh0M0RDb2NvYS5tbQppbmRleCAyZjkxMmMyYmFmODg4NGM4
YjJiZWY2MTVmZTBmYTNhMDdkM2NjZGExLi44M2NjYjQ0NTVhYTVjYjdmY2E3NmJjNGQzZWJmODcx
YWVmNzUwNmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9HcmFwaGljc0NvbnRleHQzRENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dDNEQ29jb2EubW0KQEAgLTQzOSwxOSAr
NDM5LDE1IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0Nv
bnRleHQzREF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5kCiAKICNlbGlmIFVTRShBTkdMRSkKIAot
I2lmIFBMQVRGT1JNKE1BQykKLSAgICBHTGVudW0gdGV4dHVyZVR5cGUgPSBHTF9URVhUVVJFX1JF
Q1RBTkdMRV9BTkdMRTsKLSNlbHNlCi0gICAgR0xlbnVtIHRleHR1cmVUeXBlID0gR0xfVEVYVFVS
RV8yRDsKLSNlbmRpZgorICAgIEdMZW51bSB0ZXh0dXJlVGFyZ2V0ID0gR3JhcGhpY3NDb250ZXh0
M0Q6OklPU3VyZmFjZVRleHR1cmVUYXJnZXQ7CiAKICAgICBnbDo6R2VuVGV4dHVyZXMoMSwgJm1f
dGV4dHVyZSk7Ci0gICAgZ2w6OkJpbmRUZXh0dXJlKHRleHR1cmVUeXBlLCBtX3RleHR1cmUpOwot
ICAgIGdsOjpUZXhQYXJhbWV0ZXJpKHRleHR1cmVUeXBlLCBHTF9URVhUVVJFX01BR19GSUxURVIs
IEdMX0xJTkVBUik7Ci0gICAgZ2w6OlRleFBhcmFtZXRlcmkodGV4dHVyZVR5cGUsIEdMX1RFWFRV
UkVfTUlOX0ZJTFRFUiwgR0xfTElORUFSKTsKLSAgICBnbDo6VGV4UGFyYW1ldGVyaSh0ZXh0dXJl
VHlwZSwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0UpOwotICAgIGdsOjpUZXhQ
YXJhbWV0ZXJpKHRleHR1cmVUeXBlLCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURH
RSk7Ci0gICAgZ2w6OkJpbmRUZXh0dXJlKHRleHR1cmVUeXBlLCAwKTsKKyAgICBnbDo6QmluZFRl
eHR1cmUodGV4dHVyZVRhcmdldCwgbV90ZXh0dXJlKTsKKyAgICBnbDo6VGV4UGFyYW1ldGVyaSh0
ZXh0dXJlVGFyZ2V0LCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7CisgICAgZ2w6
OlRleFBhcmFtZXRlcmkodGV4dHVyZVRhcmdldCwgR0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9M
SU5FQVIpOworICAgIGdsOjpUZXhQYXJhbWV0ZXJpKHRleHR1cmVUYXJnZXQsIEdMX1RFWFRVUkVf
V1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKKyAgICBnbDo6VGV4UGFyYW1ldGVyaSh0ZXh0dXJl
VGFyZ2V0LCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgZ2w6OkJp
bmRUZXh0dXJlKHRleHR1cmVUYXJnZXQsIDApOwogI2Vsc2UKICNlcnJvciBVbnN1cHBvcnRlZCBj
b25maWd1cmF0aW9uCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tCmluZGV4IDU1NDk0ZWQwZWUyZGUxYTJiMDFkMGQw
MzY3MDA4Y2ZkODM4NWUwNWEuLjc1ODhmOTExNWM1YzM4ZWI5ODYxMDUwYmViMjYzMmNlM2I0MGYw
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dl
YkdMTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
V2ViR0xMYXllci5tbQpAQCAtNTUsMTEgKzU1LDYgQEAKICNkZWZpbmUgR0xfQU5HTEVfZXhwbGlj
aXRfY29udGV4dAogI2luY2x1ZGUgPEFOR0xFL2dsMmV4dC5oPgogI2luY2x1ZGUgPEFOR0xFL2ds
MmV4dF9hbmdsZS5oPgotI2lmIFBMQVRGT1JNKE1BQykKLWNvbnN0IEdMZW51bSBpb1N1cmZhY2VU
ZXh0dXJlVHlwZSA9IEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFOwotI2Vsc2UKLWNvbnN0IEdM
ZW51bSBpb1N1cmZhY2VUZXh0dXJlVHlwZSA9IEdMX1RFWFRVUkVfMkQ7Ci0jZW5kaWYKICNlbmRp
ZgogCiBAaW1wbGVtZW50YXRpb24gV2ViR0xMYXllcgpAQCAtMTY4LDcgKzE2Myw3IEBAIHN0YXRp
YyB2b2lkIGZyZWVEYXRhKHZvaWQgKiwgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IC8qIHNpemUg
Ki8pCiAgICAgICAgIGlmIChfbGF0Y2hlZFBidWZmZXIpIHsKIAogICAgICAgICAgICAgR0MzRGVu
dW0gdGV4dHVyZSA9IF9jb250ZXh0LT5wbGF0Zm9ybVRleHR1cmUoKTsKLSAgICAgICAgICAgIGds
OjpCaW5kVGV4dHVyZShpb1N1cmZhY2VUZXh0dXJlVHlwZSwgdGV4dHVyZSk7CisgICAgICAgICAg
ICBnbDo6QmluZFRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OklPU3VyZmFjZVRleHR1cmVUYXJn
ZXQsIHRleHR1cmUpOwogICAgICAgICAgICAgaWYgKCFFR0xfUmVsZWFzZVRleEltYWdlKF9lZ2xE
aXNwbGF5LCBfbGF0Y2hlZFBidWZmZXIsIEVHTF9CQUNLX0JVRkZFUikpIHsKICAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogcmVwb3J0IGVycm9yLgogICAgICAgICAgICAgICAgIG5vdEltcGxlbWVu
dGVkKCk7CkBAIC0yMjcsMTAgKzIyMiwxMiBAQCBzdGF0aWMgdm9pZCBmcmVlRGF0YSh2b2lkICos
IGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCAvKiBzaXplICovKQogICAgICAgICBFR0xfV0lEVEgs
IHNpemUud2lkdGgoKSwKICAgICAgICAgRUdMX0hFSUdIVCwgc2l6ZS5oZWlnaHQoKSwKICAgICAg
ICAgRUdMX0lPU1VSRkFDRV9QTEFORV9BTkdMRSwgMCwKLSAgICAgICAgRUdMX1RFWFRVUkVfVEFS
R0VULCBFR0xfVEVYVFVSRV9SRUNUQU5HTEVfQU5HTEUsCisgICAgICAgIEVHTF9URVhUVVJFX1RB
UkdFVCwgR3JhcGhpY3NDb250ZXh0M0Q6OkVHTElPU3VyZmFjZVRleHR1cmVUYXJnZXQsCiAgICAg
ICAgIEVHTF9URVhUVVJFX0lOVEVSTkFMX0ZPUk1BVF9BTkdMRSwgdXNpbmdBbHBoYSA/IEdMX0JH
UkFfRVhUIDogR0xfUkdCLAogICAgICAgICBFR0xfVEVYVFVSRV9GT1JNQVQsIEVHTF9URVhUVVJF
X1JHQkEsCiAgICAgICAgIEVHTF9URVhUVVJFX1RZUEVfQU5HTEUsIEdMX1VOU0lHTkVEX0JZVEUs
CisgICAgICAgIC8vIE9ubHkgaGFzIGFuIGVmZmVjdCBvbiB0aGUgaU9TIFNpbXVsYXRvci4KKyAg
ICAgICAgRUdMX0lPU1VSRkFDRV9VU0FHRV9ISU5UX0FOR0xFLCBFR0xfSU9TVVJGQUNFX1dSSVRF
X0hJTlRfQU5HTEUsCiAgICAgICAgIEVHTF9OT05FLCBFR0xfTk9ORQogICAgIH07CiAKQEAgLTI1
OSw3ICsyNTYsNyBAQCBzdGF0aWMgdm9pZCBmcmVlRGF0YSh2b2lkICosIGNvbnN0IHZvaWQgKmRh
dGEsIHNpemVfdCAvKiBzaXplICovKQogI2VsaWYgVVNFKEFOR0xFKQogICAgIEdDM0RlbnVtIHRl
eHR1cmUgPSBfY29udGV4dC0+cGxhdGZvcm1UZXh0dXJlKCk7CiAKLSAgICBnbDo6QmluZFRleHR1
cmUoaW9TdXJmYWNlVGV4dHVyZVR5cGUsIHRleHR1cmUpOworICAgIGdsOjpCaW5kVGV4dHVyZShH
cmFwaGljc0NvbnRleHQzRDo6SU9TdXJmYWNlVGV4dHVyZVRhcmdldCwgdGV4dHVyZSk7CiAKICAg
ICBpZiAoX2xhdGNoZWRQYnVmZmVyKSB7CiAgICAgICAgIGlmICghRUdMX1JlbGVhc2VUZXhJbWFn
ZShfZWdsRGlzcGxheSwgX2xhdGNoZWRQYnVmZmVyLCBFR0xfQkFDS19CVUZGRVIpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVD
b3BpZXJDVi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1Rl
eHR1cmVDb3BpZXJDVi5jcHAKaW5kZXggMTIwNzI0ZGVjOWNhZTNiY2E3MGJhYTMwZDdmYzMwNjdm
ZTkzMGQ0Ny4uZGRkOGE4MmY5YTAyYmY5OTFhNmI4ZGM0ZWZmMGZlMjc0NDM3MmY1MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29w
aWVyQ1YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVv
VGV4dHVyZUNvcGllckNWLmNwcApAQCAtNzQzLDYgKzc0MywxMCBAQCB2b2lkKiBWaWRlb1RleHR1
cmVDb3BpZXJDVjo6YXR0YWNoSU9TdXJmYWNlVG9UZXh0dXJlKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGVudW0gaQogICAgICAgICBMT0coV2ViR0wsICJVbmtub3duIHRleHR1cmUgdGFyZ2V0ICVkLiIs
IHN0YXRpY19jYXN0PGludD4odGFyZ2V0KSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IH0KKyAgICBpZiAoZWdsVGV4dHVyZVRhcmdldCAhPSBHcmFwaGljc0NvbnRleHQzRDo6RUdMSU9T
dXJmYWNlVGV4dHVyZVRhcmdldCkgeworICAgICAgICBMT0coV2ViR0wsICJNaXNtYXRjaCBpbiBF
R0wgdGV4dHVyZSB0YXJnZXQgJWQuIiwgc3RhdGljX2Nhc3Q8aW50Pih0YXJnZXQpKTsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogCiAgICAgY29uc3QgRUdMaW50IHN1cmZhY2VBdHRy
aWJ1dGVzW10gPSB7CiAgICAgICAgIEVHTF9XSURUSCwgd2lkdGgsCkBAIC03NTIsNiArNzU2LDgg
QEAgdm9pZCogVmlkZW9UZXh0dXJlQ29waWVyQ1Y6OmF0dGFjaElPU3VyZmFjZVRvVGV4dHVyZShH
QzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGkKICAgICAgICAgRUdMX1RFWFRVUkVfSU5URVJOQUxf
Rk9STUFUX0FOR0xFLCBzdGF0aWNfY2FzdDxFR0xpbnQ+KGludGVybmFsRm9ybWF0KSwKICAgICAg
ICAgRUdMX1RFWFRVUkVfRk9STUFULCBFR0xfVEVYVFVSRV9SR0JBLAogICAgICAgICBFR0xfVEVY
VFVSRV9UWVBFX0FOR0xFLCBzdGF0aWNfY2FzdDxFR0xpbnQ+KHR5cGUpLAorICAgICAgICAvLyBP
bmx5IGhhcyBhbiBlZmZlY3Qgb24gdGhlIGlPUyBTaW11bGF0b3IuCisgICAgICAgIEVHTF9JT1NV
UkZBQ0VfVVNBR0VfSElOVF9BTkdMRSwgRUdMX0lPU1VSRkFDRV9SRUFEX0hJTlRfQU5HTEUsCiAg
ICAgICAgIEVHTF9OT05FLCBFR0xfTk9ORQogICAgIH07CiAgICAgRUdMU3VyZmFjZSBwYnVmZmVy
ID0gRUdMX0NyZWF0ZVBidWZmZXJGcm9tQ2xpZW50QnVmZmVyKGRpc3BsYXksIEVHTF9JT1NVUkZB
Q0VfQU5HTEUsIHN1cmZhY2UsIG1fY29udGV4dC0+cGxhdGZvcm1Db25maWcoKSwgc3VyZmFjZUF0
dHJpYnV0ZXMpOwpAQCAtODUxLDEwICs4NTcsMTIgQEAgYm9vbCBWaWRlb1RleHR1cmVDb3BpZXJD
Vjo6Y29weUltYWdlVG9QbGF0Zm9ybVRleHR1cmUoQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFnZSwgc2kK
ICAgICBhdXRvIHV2UGxhbmVXaWR0aCA9IElPU3VyZmFjZUdldFdpZHRoT2ZQbGFuZShzdXJmYWNl
LCAxKTsKICAgICBhdXRvIHV2UGxhbmVIZWlnaHQgPSBJT1N1cmZhY2VHZXRIZWlnaHRPZlBsYW5l
KHN1cmZhY2UsIDEpOwogCi0jaWYgVVNFKE9QRU5HTF9FUykgfHwgKFVTRShBTkdMRSkgJiYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkpCisjaWYgVVNFKE9QRU5HTF9FUykKICAgICBHQzNEZW51bSB2aWRl
b1RleHR1cmVUYXJnZXQgPSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRDsKLSNlbGlmIFVT
RShPUEVOR0wpIHx8IChVU0UoQU5HTEUpICYmICFQTEFURk9STShJT1NfRkFNSUxZKSkKKyNlbGlm
IFVTRShPUEVOR0wpCiAgICAgR0MzRGVudW0gdmlkZW9UZXh0dXJlVGFyZ2V0ID0gR3JhcGhpY3ND
b250ZXh0M0Q6OlRFWFRVUkVfUkVDVEFOR0xFX0FSQjsKKyNlbGlmIFVTRShBTkdMRSkKKyAgICBH
QzNEZW51bSB2aWRlb1RleHR1cmVUYXJnZXQgPSBHcmFwaGljc0NvbnRleHQzRDo6SU9TdXJmYWNl
VGV4dHVyZVRhcmdldDsKICNlbHNlCiAjZXJyb3IgVW5zdXBwb3J0ZWQgY29uZmlndXJhdGlvbgog
I2VuZGlmCg==
</data>
<flag name="review"
          id="402486"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>