From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.5 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0D554C54FD2 for ; Mon, 23 Mar 2020 23:09:29 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D487D20409 for ; Mon, 23 Mar 2020 23:09:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="NBhpQA0E" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D487D20409 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 30C876E3FB; Mon, 23 Mar 2020 23:09:21 +0000 (UTC) Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by gabe.freedesktop.org (Postfix) with ESMTPS id B84AF6E3FB for ; Mon, 23 Mar 2020 23:09:15 +0000 (UTC) Received: by mail-wr1-x441.google.com with SMTP id j17so15872823wru.13 for ; Mon, 23 Mar 2020 16:09:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=YWCnIp5FajlobeyyhRgztp+4PCYBxZZzywsNigXQYGg=; b=NBhpQA0E+P8NLDkUPSZRXCeWimE/LtdoO4VUbwy8371TnGPbFLouZFPPYUuNqfsb+y JRKAt2uYGfTr1cK3qzakx2nHXWifRtOMnPUHz5PHk26Q1cwk1YCtkATZgeb7KWGltzCY C+iQAUFLKFM3Thvrl1hcodIl4h4dTZmZLC6MGLuEwOtrzJ9CqcLQi7rJqM3osyaSLsuS RKquTiFgr888DarbMzj6oEmRoI0O1VIXrpleiMbKH7WEiifMM6SbJt1BmDy2gXpa+SkQ 1KwAn1mhi2uxI6SDkHVladSSx90iAPQePW1nlCIltmU89x+2k+gpi39T0Ix134u7a3/i TzeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=YWCnIp5FajlobeyyhRgztp+4PCYBxZZzywsNigXQYGg=; b=dsvV8PwsdyVO0pEvNttQqkGZTjw8H+lzIZe3Xa4SEKBrrEaG1xA4D/WrOx7neLHbTN MasHiO283DHrtOlSAe0k4O9sBU72mcP+UjyT2CIEoXx1YOUhWuhq3bug9fPZkhRiYPso MC2MXvBNVyLF7neHQ3u4euGAYZB9yIIxcDhzr1Uy7DqLoadIBec9CB6cn5wpSQ/x2P76 XdOCFJomDdQBeAvrVzBKrq1cUlnzdNNx5XhwUW62N+hN6aAALMOoPR8xPk4s1J/UzIZo EyAF1q2xUjC+LqdSZIA2NN5cs1WkKvQqq3C6FEvgn8gcY8WAGYMXXXa5uJZY7QLZ/bs3 uuXg== X-Gm-Message-State: ANhLgQ2mw81yQ19muLIZd5QAJ1/OGDuYi+pOFmuRhi8GvYqiJh8S86Zx G7PZUZTIfDbPih2gNUoe6UqBrNaX X-Google-Smtp-Source: ADFU+vvJYNvqye0XHAlMB0wpKiF6QflyADn2EelAzNBtw23pmuA99UH9ryewTvcbnS9jO6lGC56Prg== X-Received: by 2002:adf:eed1:: with SMTP id a17mr5495506wrp.287.1585004954009; Mon, 23 Mar 2020 16:09:14 -0700 (PDT) Received: from sroland-t5810.vmware.com (46-126-183-173.dynamic.hispeed.ch. [46.126.183.173]) by smtp.gmail.com with ESMTPSA id q185sm1641937wme.10.2020.03.23.16.09.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2020 16:09:13 -0700 (PDT) From: Roland Scheidegger X-Google-Original-From: Roland Scheidegger To: dri-devel@lists.freedesktop.org, airlied@redhat.com, daniel@ffwll.ch Subject: [PATCH v2 08/17] drm/vmwgfx: Support SM5 shader type in command buffer Date: Tue, 24 Mar 2020 00:08:52 +0100 Message-Id: <20200323230901.13302-9-sroland@vmware.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200323230901.13302-1-sroland@vmware.com> References: <20200323230901.13302-1-sroland@vmware.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-graphics-maintainer@vmware.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" RnJvbTogRGVlcGFrIFJhd2F0IDxkcmF3YXQuZmxvc3NAZ21haWwuY29tPgoKVmlydHVhbCBkZXZp Y2Ugbm93IHN1cHBvcnRzIG5ldyBzaGFkZXIgdHlwZXMsIGFsbG93IHRoZW0gYXMgdmFsaWQgc2hh ZGVyCnR5cGUgaW4gY29tbWFuZCBidWZmZXIuIEFsc28gYWRkIHBlciBzaGFkZXIgYmluZCBpbmZv IGluIGJpbmRpbmcgbWFuYWdlcgpzdGF0ZSBmb3IgbmV3IHNoYWRlciB0eXBlLgoKU2lnbmVkLW9m Zi1ieTogRGVlcGFrIFJhd2F0IDxkcmF3YXQuZmxvc3NAZ21haWwuY29tPgpSZXZpZXdlZC1ieTog VGhvbWFzIEhlbGxzdHLDtm0gKFZNd2FyZSkgPHRob21hc19vc0BzaGlwbWFpbC5vcmc+ClJldmll d2VkLWJ5OiBSb2xhbmQgU2NoZWlkZWdnZXIgPHNyb2xhbmRAdm13YXJlLmNvbT4KU2lnbmVkLW9m Zi1ieTogUm9sYW5kIFNjaGVpZGVnZ2VyIDxzcm9sYW5kQHZtd2FyZS5jb20+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYmluZGluZy5jIHwgMTEgKysrKysrKysrKy0KIGRyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2V4ZWNidWYuYyB8IDE0ICsrKysrKysrKysrLS0tCiAy IGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYmluZGluZy5jIGIvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfYmluZGluZy5jCmluZGV4IDY2ZTE0ZTM4ZDVlOC4uNWE3ZThk YjNlODI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iaW5kaW5n LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYmluZGluZy5jCkBAIC05OCw3 ICs5OCw3IEBAIHN0cnVjdCB2bXdfY3R4X2JpbmRpbmdfc3RhdGUgewogCXN0cnVjdCB2bXdfY3R4 X2JpbmRpbmZvX3NvIHNvX3RhcmdldHNbU1ZHQTNEX0RYX01BWF9TT1RBUkdFVFNdOwogCXN0cnVj dCB2bXdfY3R4X2JpbmRpbmZvX3ZiIHZlcnRleF9idWZmZXJzW1NWR0EzRF9EWF9NQVhfVkVSVEVY QlVGRkVSU107CiAJc3RydWN0IHZtd19jdHhfYmluZGluZm9faWIgaW5kZXhfYnVmZmVyOwotCXN0 cnVjdCB2bXdfZHhfc2hhZGVyX2JpbmRpbmdzIHBlcl9zaGFkZXJbU1ZHQTNEX05VTV9TSEFERVJU WVBFX0RYMTBdOworCXN0cnVjdCB2bXdfZHhfc2hhZGVyX2JpbmRpbmdzIHBlcl9zaGFkZXJbU1ZH QTNEX05VTV9TSEFERVJUWVBFXTsKIAogCXVuc2lnbmVkIGxvbmcgZGlydHk7CiAJREVDTEFSRV9C SVRNQVAoZGlydHlfdmIsIFNWR0EzRF9EWF9NQVhfVkVSVEVYQlVGRkVSUyk7CkBAIC0xNTEsNiAr MTUxLDkgQEAgc3RhdGljIGNvbnN0IHNpemVfdCB2bXdfYmluZGluZ19zaGFkZXJfb2Zmc2V0c1td ID0gewogCW9mZnNldG9mKHN0cnVjdCB2bXdfY3R4X2JpbmRpbmdfc3RhdGUsIHBlcl9zaGFkZXJb MF0uc2hhZGVyKSwKIAlvZmZzZXRvZihzdHJ1Y3Qgdm13X2N0eF9iaW5kaW5nX3N0YXRlLCBwZXJf c2hhZGVyWzFdLnNoYWRlciksCiAJb2Zmc2V0b2Yoc3RydWN0IHZtd19jdHhfYmluZGluZ19zdGF0 ZSwgcGVyX3NoYWRlclsyXS5zaGFkZXIpLAorCW9mZnNldG9mKHN0cnVjdCB2bXdfY3R4X2JpbmRp bmdfc3RhdGUsIHBlcl9zaGFkZXJbM10uc2hhZGVyKSwKKwlvZmZzZXRvZihzdHJ1Y3Qgdm13X2N0 eF9iaW5kaW5nX3N0YXRlLCBwZXJfc2hhZGVyWzRdLnNoYWRlciksCisJb2Zmc2V0b2Yoc3RydWN0 IHZtd19jdHhfYmluZGluZ19zdGF0ZSwgcGVyX3NoYWRlcls1XS5zaGFkZXIpLAogfTsKIHN0YXRp YyBjb25zdCBzaXplX3Qgdm13X2JpbmRpbmdfcnRfb2Zmc2V0c1tdID0gewogCW9mZnNldG9mKHN0 cnVjdCB2bXdfY3R4X2JpbmRpbmdfc3RhdGUsIHJlbmRlcl90YXJnZXRzKSwKQEAgLTE2Miw2ICsx NjUsOSBAQCBzdGF0aWMgY29uc3Qgc2l6ZV90IHZtd19iaW5kaW5nX2NiX29mZnNldHNbXSA9IHsK IAlvZmZzZXRvZihzdHJ1Y3Qgdm13X2N0eF9iaW5kaW5nX3N0YXRlLCBwZXJfc2hhZGVyWzBdLmNv bnN0X2J1ZmZlcnMpLAogCW9mZnNldG9mKHN0cnVjdCB2bXdfY3R4X2JpbmRpbmdfc3RhdGUsIHBl cl9zaGFkZXJbMV0uY29uc3RfYnVmZmVycyksCiAJb2Zmc2V0b2Yoc3RydWN0IHZtd19jdHhfYmlu ZGluZ19zdGF0ZSwgcGVyX3NoYWRlclsyXS5jb25zdF9idWZmZXJzKSwKKwlvZmZzZXRvZihzdHJ1 Y3Qgdm13X2N0eF9iaW5kaW5nX3N0YXRlLCBwZXJfc2hhZGVyWzNdLmNvbnN0X2J1ZmZlcnMpLAor CW9mZnNldG9mKHN0cnVjdCB2bXdfY3R4X2JpbmRpbmdfc3RhdGUsIHBlcl9zaGFkZXJbNF0uY29u c3RfYnVmZmVycyksCisJb2Zmc2V0b2Yoc3RydWN0IHZtd19jdHhfYmluZGluZ19zdGF0ZSwgcGVy X3NoYWRlcls1XS5jb25zdF9idWZmZXJzKSwKIH07CiBzdGF0aWMgY29uc3Qgc2l6ZV90IHZtd19i aW5kaW5nX2R4X2RzX29mZnNldHNbXSA9IHsKIAlvZmZzZXRvZihzdHJ1Y3Qgdm13X2N0eF9iaW5k aW5nX3N0YXRlLCBkc192aWV3KSwKQEAgLTE3MCw2ICsxNzYsOSBAQCBzdGF0aWMgY29uc3Qgc2l6 ZV90IHZtd19iaW5kaW5nX3NyX29mZnNldHNbXSA9IHsKIAlvZmZzZXRvZihzdHJ1Y3Qgdm13X2N0 eF9iaW5kaW5nX3N0YXRlLCBwZXJfc2hhZGVyWzBdLnNoYWRlcl9yZXMpLAogCW9mZnNldG9mKHN0 cnVjdCB2bXdfY3R4X2JpbmRpbmdfc3RhdGUsIHBlcl9zaGFkZXJbMV0uc2hhZGVyX3JlcyksCiAJ b2Zmc2V0b2Yoc3RydWN0IHZtd19jdHhfYmluZGluZ19zdGF0ZSwgcGVyX3NoYWRlclsyXS5zaGFk ZXJfcmVzKSwKKwlvZmZzZXRvZihzdHJ1Y3Qgdm13X2N0eF9iaW5kaW5nX3N0YXRlLCBwZXJfc2hh ZGVyWzNdLnNoYWRlcl9yZXMpLAorCW9mZnNldG9mKHN0cnVjdCB2bXdfY3R4X2JpbmRpbmdfc3Rh dGUsIHBlcl9zaGFkZXJbNF0uc2hhZGVyX3JlcyksCisJb2Zmc2V0b2Yoc3RydWN0IHZtd19jdHhf YmluZGluZ19zdGF0ZSwgcGVyX3NoYWRlcls1XS5zaGFkZXJfcmVzKSwKIH07CiBzdGF0aWMgY29u c3Qgc2l6ZV90IHZtd19iaW5kaW5nX3NvX29mZnNldHNbXSA9IHsKIAlvZmZzZXRvZihzdHJ1Y3Qg dm13X2N0eF9iaW5kaW5nX3N0YXRlLCBzb190YXJnZXRzKSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X2V4ZWNidWYuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X2V4ZWNidWYuYwppbmRleCA3M2YxOWYwZmVjODguLjRhYmVkMTM1YzAxMyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZXhlY2J1Zi5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2V4ZWNidWYuYwpAQCAtMjExOCw2ICsyMTE4LDkgQEAg dm13X2NtZF9keF9zZXRfc2luZ2xlX2NvbnN0YW50X2J1ZmZlcihzdHJ1Y3Qgdm13X3ByaXZhdGUg KmRldl9wcml2LAogCQkJCSAgICAgIFNWR0EzZENtZEhlYWRlciAqaGVhZGVyKQogewogCVZNV19E RUNMQVJFX0NNRF9WQVIoKmNtZCwgU1ZHQTNkQ21kRFhTZXRTaW5nbGVDb25zdGFudEJ1ZmZlcik7 CisJU1ZHQTNkU2hhZGVyVHlwZSBtYXhfc2hhZGVyX251bSA9IGhhc19zbTVfY29udGV4dChkZXZf cHJpdikgPworCQlTVkdBM0RfTlVNX1NIQURFUlRZUEUgOiBTVkdBM0RfTlVNX1NIQURFUlRZUEVf RFgxMDsKKwogCXN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcyA9IE5VTEw7CiAJc3RydWN0IHZtd19j dHhfdmFsaWRhdGlvbl9pbmZvICpjdHhfbm9kZSA9IFZNV19HRVRfQ1RYX05PREUoc3dfY29udGV4 dCk7CiAJc3RydWN0IHZtd19jdHhfYmluZGluZm9fY2IgYmluZGluZzsKQEAgLTIxNDEsNyArMjE0 NCw3IEBAIHZtd19jbWRfZHhfc2V0X3NpbmdsZV9jb25zdGFudF9idWZmZXIoc3RydWN0IHZtd19w cml2YXRlICpkZXZfcHJpdiwKIAliaW5kaW5nLnNpemUgPSBjbWQtPmJvZHkuc2l6ZUluQnl0ZXM7 CiAJYmluZGluZy5zbG90ID0gY21kLT5ib2R5LnNsb3Q7CiAKLQlpZiAoYmluZGluZy5zaGFkZXJf c2xvdCA+PSBTVkdBM0RfTlVNX1NIQURFUlRZUEVfRFgxMCB8fAorCWlmIChiaW5kaW5nLnNoYWRl cl9zbG90ID49IG1heF9zaGFkZXJfbnVtIHx8CiAJICAgIGJpbmRpbmcuc2xvdCA+PSBTVkdBM0Rf RFhfTUFYX0NPTlNUQlVGRkVSUykgewogCQlWTVdfREVCVUdfVVNFUigiSWxsZWdhbCBjb25zdCBi dWZmZXIgc2hhZGVyICV1IHNsb3QgJXUuXG4iLAogCQkJICAgICAgICh1bnNpZ25lZCBpbnQpIGNt ZC0+Ym9keS50eXBlLApAQCAtMjE2OSwxMiArMjE3MiwxNSBAQCBzdGF0aWMgaW50IHZtd19jbWRf ZHhfc2V0X3NoYWRlcl9yZXMoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKIHsKIAlWTVdf REVDTEFSRV9DTURfVkFSKCpjbWQsIFNWR0EzZENtZERYU2V0U2hhZGVyUmVzb3VyY2VzKSA9CiAJ CWNvbnRhaW5lcl9vZihoZWFkZXIsIHR5cGVvZigqY21kKSwgaGVhZGVyKTsKKwlTVkdBM2RTaGFk ZXJUeXBlIG1heF9hbGxvd2VkID0gaGFzX3NtNV9jb250ZXh0KGRldl9wcml2KSA/CisJCVNWR0Ez RF9TSEFERVJUWVBFX01BWCA6IFNWR0EzRF9TSEFERVJUWVBFX0RYMTBfTUFYOworCiAJdTMyIG51 bV9zcl92aWV3ID0gKGNtZC0+aGVhZGVyLnNpemUgLSBzaXplb2YoY21kLT5ib2R5KSkgLwogCQlz aXplb2YoU1ZHQTNkU2hhZGVyUmVzb3VyY2VWaWV3SWQpOwogCiAJaWYgKCh1NjQpIGNtZC0+Ym9k eS5zdGFydFZpZXcgKyAodTY0KSBudW1fc3JfdmlldyA+CiAJICAgICh1NjQpIFNWR0EzRF9EWF9N QVhfU1JWSUVXUyB8fAotCSAgICBjbWQtPmJvZHkudHlwZSA+PSBTVkdBM0RfU0hBREVSVFlQRV9E WDEwX01BWCkgeworCSAgICBjbWQtPmJvZHkudHlwZSA+PSBtYXhfYWxsb3dlZCkgewogCQlWTVdf REVCVUdfVVNFUigiSW52YWxpZCBzaGFkZXIgYmluZGluZy5cbiIpOwogCQlyZXR1cm4gLUVJTlZB TDsKIAl9CkBAIC0yMTk4LDYgKzIyMDQsOCBAQCBzdGF0aWMgaW50IHZtd19jbWRfZHhfc2V0X3No YWRlcihzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCSBTVkdBM2RDbWRIZWFkZXIg KmhlYWRlcikKIHsKIAlWTVdfREVDTEFSRV9DTURfVkFSKCpjbWQsIFNWR0EzZENtZERYU2V0U2hh ZGVyKTsKKwlTVkdBM2RTaGFkZXJUeXBlIG1heF9hbGxvd2VkID0gaGFzX3NtNV9jb250ZXh0KGRl dl9wcml2KSA/CisJCVNWR0EzRF9TSEFERVJUWVBFX01BWCA6IFNWR0EzRF9TSEFERVJUWVBFX0RY MTBfTUFYOwogCXN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcyA9IE5VTEw7CiAJc3RydWN0IHZtd19j dHhfdmFsaWRhdGlvbl9pbmZvICpjdHhfbm9kZSA9IFZNV19HRVRfQ1RYX05PREUoc3dfY29udGV4 dCk7CiAJc3RydWN0IHZtd19jdHhfYmluZGluZm9fc2hhZGVyIGJpbmRpbmc7CkBAIC0yMjA4LDcg KzIyMTYsNyBAQCBzdGF0aWMgaW50IHZtd19jbWRfZHhfc2V0X3NoYWRlcihzdHJ1Y3Qgdm13X3By aXZhdGUgKmRldl9wcml2LAogCiAJY21kID0gY29udGFpbmVyX29mKGhlYWRlciwgdHlwZW9mKCpj bWQpLCBoZWFkZXIpOwogCi0JaWYgKGNtZC0+Ym9keS50eXBlID49IFNWR0EzRF9TSEFERVJUWVBF X0RYMTBfTUFYIHx8CisJaWYgKGNtZC0+Ym9keS50eXBlID49IG1heF9hbGxvd2VkIHx8CiAJICAg IGNtZC0+Ym9keS50eXBlIDwgU1ZHQTNEX1NIQURFUlRZUEVfTUlOKSB7CiAJCVZNV19ERUJVR19V U0VSKCJJbGxlZ2FsIHNoYWRlciB0eXBlICV1LlxuIiwKIAkJCSAgICAgICAodW5zaWduZWQgaW50 KSBjbWQtPmJvZHkudHlwZSk7Ci0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAo=