From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752156AbdHDFFt (ORCPT ); Fri, 4 Aug 2017 01:05:49 -0400 Received: from mail-pf0-f194.google.com ([209.85.192.194]:33166 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751525AbdHDFEQ (ORCPT ); Fri, 4 Aug 2017 01:04:16 -0400 From: Arvind Yadav To: daniel.vetter@intel.com, jani.nikula@linux.intel.com, airlied@linux.ie Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH 05/11] drm: i915: i915_oa_glk: constify attribute_group structures. Date: Fri, 4 Aug 2017 10:33:30 +0530 Message-Id: <1501823016-6779-6-git-send-email-arvind.yadav.cs@gmail.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1501823016-6779-1-git-send-email-arvind.yadav.cs@gmail.com> References: <1501823016-6779-1-git-send-email-arvind.yadav.cs@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org attribute_group are not supposed to change at runtime. All functions working with attribute_group provided by work with const attribute_group. So mark the non-const structs as const. Signed-off-by: Arvind Yadav --- drivers/gpu/drm/i915/i915_oa_glk.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_oa_glk.c b/drivers/gpu/drm/i915/i915_oa_glk.c index 2f356d5..a8eea3a 100644 --- a/drivers/gpu/drm/i915/i915_oa_glk.c +++ b/drivers/gpu/drm/i915/i915_oa_glk.c @@ -2119,7 +2119,7 @@ int i915_oa_select_metric_set_glk(struct drm_i915_private *dev_priv) NULL, }; -static struct attribute_group group_render_basic = { +static const struct attribute_group group_render_basic = { .name = "d72df5c7-5b4a-4274-a43f-00b0fd51fc68", .attrs = attrs_render_basic, }; @@ -2141,7 +2141,7 @@ int i915_oa_select_metric_set_glk(struct drm_i915_private *dev_priv) NULL, }; -static struct attribute_group group_compute_basic = { +static const struct attribute_group group_compute_basic = { .name = "814285f6-354d-41d2-ba49-e24e622714a0", .attrs = attrs_compute_basic, }; @@ -2163,7 +2163,7 @@ int i915_oa_select_metric_set_glk(struct drm_i915_private *dev_priv) NULL, }; -static struct attribute_group group_render_pipe_profile = { +static const struct attribute_group group_render_pipe_profile = { .name = "07d397a6-b3e6-49f6-9433-a4f293d55978", .attrs = attrs_render_pipe_profile, }; @@ -2185,7 +2185,7 @@ int i915_oa_select_metric_set_glk(struct drm_i915_private *dev_priv) NULL, }; -static struct attribute_group group_memory_reads = { +static const struct attribute_group group_memory_reads = { .name = "1a356946-5428-450b-a2f0-89f8783a302d", .attrs = attrs_memory_reads, }; @@ -2207,7 +2207,7 @@ int i915_oa_select_metric_set_glk(struct drm_i915_private *dev_priv) NULL, }; -static struct attribute_group group_memory_writes = { +static const struct attribute_group group_memory_writes = { .name = "5299be9d-7a61-4c99-9f81-f87e6c5aaca9", .attrs = attrs_memory_writes, }; @@ -2229,7 +2229,7 @@ int i915_oa_select_metric_set_glk(struct drm_i915_private *dev_priv) NULL, }; -static struct attribute_group group_compute_extended = { +static const struct attribute_group group_compute_extended = { .name = "bc9bcff2-459a-4cbc-986d-a84b077153f3", .attrs = attrs_compute_extended, }; @@ -2251,7 +2251,7 @@ int i915_oa_select_metric_set_glk(struct drm_i915_private *dev_priv) NULL, }; -static struct attribute_group group_compute_l3_cache = { +static const struct attribute_group group_compute_l3_cache = { .name = "88ec931f-5b4a-453a-9db6-a61232b6143d", .attrs = attrs_compute_l3_cache, }; @@ -2273,7 +2273,7 @@ int i915_oa_select_metric_set_glk(struct drm_i915_private *dev_priv) NULL, }; -static struct attribute_group group_hdc_and_sf = { +static const struct attribute_group group_hdc_and_sf = { .name = "530d176d-2a18-4014-adf8-1500c6c60835", .attrs = attrs_hdc_and_sf, }; @@ -2295,7 +2295,7 @@ int i915_oa_select_metric_set_glk(struct drm_i915_private *dev_priv) NULL, }; -static struct attribute_group group_l3_1 = { +static const struct attribute_group group_l3_1 = { .name = "fdee5a5a-f23c-43d1-aa73-f6257c71671d", .attrs = attrs_l3_1, }; @@ -2317,7 +2317,7 @@ int i915_oa_select_metric_set_glk(struct drm_i915_private *dev_priv) NULL, }; -static struct attribute_group group_rasterizer_and_pixel_backend = { +static const struct attribute_group group_rasterizer_and_pixel_backend = { .name = "6617623e-ca73-4791-b2b7-ddedd0846a0c", .attrs = attrs_rasterizer_and_pixel_backend, }; @@ -2339,7 +2339,7 @@ int i915_oa_select_metric_set_glk(struct drm_i915_private *dev_priv) NULL, }; -static struct attribute_group group_sampler = { +static const struct attribute_group group_sampler = { .name = "f3b2ea63-e82e-4234-b418-44dd20dd34d0", .attrs = attrs_sampler, }; @@ -2361,7 +2361,7 @@ int i915_oa_select_metric_set_glk(struct drm_i915_private *dev_priv) NULL, }; -static struct attribute_group group_tdl_1 = { +static const struct attribute_group group_tdl_1 = { .name = "14411d35-cbf6-4f5e-b68b-190faf9a1a83", .attrs = attrs_tdl_1, }; @@ -2383,7 +2383,7 @@ int i915_oa_select_metric_set_glk(struct drm_i915_private *dev_priv) NULL, }; -static struct attribute_group group_tdl_2 = { +static const struct attribute_group group_tdl_2 = { .name = "ffa3f263-0478-4724-8c9f-c911c5ec0f1d", .attrs = attrs_tdl_2, }; @@ -2405,7 +2405,7 @@ int i915_oa_select_metric_set_glk(struct drm_i915_private *dev_priv) NULL, }; -static struct attribute_group group_compute_extra = { +static const struct attribute_group group_compute_extra = { .name = "15274c82-27d2-4819-876a-7cb1a2c59ba4", .attrs = attrs_compute_extra, }; @@ -2427,7 +2427,7 @@ int i915_oa_select_metric_set_glk(struct drm_i915_private *dev_priv) NULL, }; -static struct attribute_group group_test_oa = { +static const struct attribute_group group_test_oa = { .name = "dd3fd789-e783-4204-8cd0-b671bbccb0cf", .attrs = attrs_test_oa, }; -- 1.9.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arvind Yadav Subject: [PATCH 05/11] drm: i915: i915_oa_glk: constify attribute_group structures. Date: Fri, 4 Aug 2017 10:33:30 +0530 Message-ID: <1501823016-6779-6-git-send-email-arvind.yadav.cs@gmail.com> References: <1501823016-6779-1-git-send-email-arvind.yadav.cs@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1501823016-6779-1-git-send-email-arvind.yadav.cs@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: daniel.vetter@intel.com, jani.nikula@linux.intel.com, airlied@linux.ie Cc: intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org YXR0cmlidXRlX2dyb3VwIGFyZSBub3Qgc3VwcG9zZWQgdG8gY2hhbmdlIGF0IHJ1bnRpbWUuIEFs bCBmdW5jdGlvbnMKd29ya2luZyB3aXRoIGF0dHJpYnV0ZV9ncm91cCBwcm92aWRlZCBieSA8bGlu dXgvc3lzZnMuaD4gd29yayB3aXRoCmNvbnN0IGF0dHJpYnV0ZV9ncm91cC4gU28gbWFyayB0aGUg bm9uLWNvbnN0IHN0cnVjdHMgYXMgY29uc3QuCgpTaWduZWQtb2ZmLWJ5OiBBcnZpbmQgWWFkYXYg PGFydmluZC55YWRhdi5jc0BnbWFpbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9vYV9nbGsuYyB8IDMwICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfZ2xrLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X29hX2dsay5jCmluZGV4IDJmMzU2ZDUuLmE4ZWVhM2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfb2FfZ2xrLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9vYV9nbGsuYwpAQCAtMjExOSw3ICsyMTE5LDcgQEAgaW50IGk5MTVfb2Ffc2VsZWN0X21ldHJp Y19zZXRfZ2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlOVUxMLAogfTsK IAotc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfcmVuZGVyX2Jhc2ljID0gewor c3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfcmVuZGVyX2Jhc2ljID0g ewogCS5uYW1lID0gImQ3MmRmNWM3LTViNGEtNDI3NC1hNDNmLTAwYjBmZDUxZmM2OCIsCiAJLmF0 dHJzID0gIGF0dHJzX3JlbmRlcl9iYXNpYywKIH07CkBAIC0yMTQxLDcgKzIxNDEsNyBAQCBpbnQg aTkxNV9vYV9zZWxlY3RfbWV0cmljX3NldF9nbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogCU5VTEwsCiB9OwogCi1zdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91 cF9jb21wdXRlX2Jhc2ljID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAg Z3JvdXBfY29tcHV0ZV9iYXNpYyA9IHsKIAkubmFtZSA9ICI4MTQyODVmNi0zNTRkLTQxZDItYmE0 OS1lMjRlNjIyNzE0YTAiLAogCS5hdHRycyA9ICBhdHRyc19jb21wdXRlX2Jhc2ljLAogfTsKQEAg LTIxNjMsNyArMjE2Myw3IEBAIGludCBpOTE1X29hX3NlbGVjdF9tZXRyaWNfc2V0X2dsayhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJTlVMTCwKIH07CiAKLXN0YXRpYyBzdHJ1 Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX3JlbmRlcl9waXBlX3Byb2ZpbGUgPSB7CitzdGF0aWMg Y29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF9yZW5kZXJfcGlwZV9wcm9maWxlID0g ewogCS5uYW1lID0gIjA3ZDM5N2E2LWIzZTYtNDlmNi05NDMzLWE0ZjI5M2Q1NTk3OCIsCiAJLmF0 dHJzID0gIGF0dHJzX3JlbmRlcl9waXBlX3Byb2ZpbGUsCiB9OwpAQCAtMjE4NSw3ICsyMTg1LDcg QEAgaW50IGk5MTVfb2Ffc2VsZWN0X21ldHJpY19zZXRfZ2xrKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIAlOVUxMLAogfTsKIAotc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3Jv dXAgZ3JvdXBfbWVtb3J5X3JlYWRzID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVf Z3JvdXAgZ3JvdXBfbWVtb3J5X3JlYWRzID0gewogCS5uYW1lID0gIjFhMzU2OTQ2LTU0MjgtNDUw Yi1hMmYwLTg5Zjg3ODNhMzAyZCIsCiAJLmF0dHJzID0gIGF0dHJzX21lbW9yeV9yZWFkcywKIH07 CkBAIC0yMjA3LDcgKzIyMDcsNyBAQCBpbnQgaTkxNV9vYV9zZWxlY3RfbWV0cmljX3NldF9nbGso c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCU5VTEwsCiB9OwogCi1zdGF0aWMg c3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF9tZW1vcnlfd3JpdGVzID0geworc3RhdGljIGNv bnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfbWVtb3J5X3dyaXRlcyA9IHsKIAkubmFt ZSA9ICI1Mjk5YmU5ZC03YTYxLTRjOTktOWY4MS1mODdlNmM1YWFjYTkiLAogCS5hdHRycyA9ICBh dHRyc19tZW1vcnlfd3JpdGVzLAogfTsKQEAgLTIyMjksNyArMjIyOSw3IEBAIGludCBpOTE1X29h X3NlbGVjdF9tZXRyaWNfc2V0X2dsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiAJTlVMTCwKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX2NvbXB1 dGVfZXh0ZW5kZWQgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91 cF9jb21wdXRlX2V4dGVuZGVkID0gewogCS5uYW1lID0gImJjOWJjZmYyLTQ1OWEtNGNiYy05ODZk LWE4NGIwNzcxNTNmMyIsCiAJLmF0dHJzID0gIGF0dHJzX2NvbXB1dGVfZXh0ZW5kZWQsCiB9OwpA QCAtMjI1MSw3ICsyMjUxLDcgQEAgaW50IGk5MTVfb2Ffc2VsZWN0X21ldHJpY19zZXRfZ2xrKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlOVUxMLAogfTsKIAotc3RhdGljIHN0 cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfY29tcHV0ZV9sM19jYWNoZSA9IHsKK3N0YXRpYyBj b25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX2NvbXB1dGVfbDNfY2FjaGUgPSB7CiAJ Lm5hbWUgPSAiODhlYzkzMWYtNWI0YS00NTNhLTlkYjYtYTYxMjMyYjYxNDNkIiwKIAkuYXR0cnMg PSAgYXR0cnNfY29tcHV0ZV9sM19jYWNoZSwKIH07CkBAIC0yMjczLDcgKzIyNzMsNyBAQCBpbnQg aTkxNV9vYV9zZWxlY3RfbWV0cmljX3NldF9nbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogCU5VTEwsCiB9OwogCi1zdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91 cF9oZGNfYW5kX3NmID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3Jv dXBfaGRjX2FuZF9zZiA9IHsKIAkubmFtZSA9ICI1MzBkMTc2ZC0yYTE4LTQwMTQtYWRmOC0xNTAw YzZjNjA4MzUiLAogCS5hdHRycyA9ICBhdHRyc19oZGNfYW5kX3NmLAogfTsKQEAgLTIyOTUsNyAr MjI5NSw3IEBAIGludCBpOTE1X29hX3NlbGVjdF9tZXRyaWNfc2V0X2dsayhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJTlVMTCwKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgYXR0cmli dXRlX2dyb3VwIGdyb3VwX2wzXzEgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9n cm91cCBncm91cF9sM18xID0gewogCS5uYW1lID0gImZkZWU1YTVhLWYyM2MtNDNkMS1hYTczLWY2 MjU3YzcxNjcxZCIsCiAJLmF0dHJzID0gIGF0dHJzX2wzXzEsCiB9OwpAQCAtMjMxNyw3ICsyMzE3 LDcgQEAgaW50IGk5MTVfb2Ffc2VsZWN0X21ldHJpY19zZXRfZ2xrKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIAlOVUxMLAogfTsKIAotc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVf Z3JvdXAgZ3JvdXBfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZCA9IHsKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX3Jhc3Rlcml6ZXJfYW5kX3BpeGVsX2JhY2tl bmQgPSB7CiAJLm5hbWUgPSAiNjYxNzYyM2UtY2E3My00NzkxLWIyYjctZGRlZGQwODQ2YTBjIiwK IAkuYXR0cnMgPSAgYXR0cnNfcmFzdGVyaXplcl9hbmRfcGl4ZWxfYmFja2VuZCwKIH07CkBAIC0y MzM5LDcgKzIzMzksNyBAQCBpbnQgaTkxNV9vYV9zZWxlY3RfbWV0cmljX3NldF9nbGsoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCU5VTEwsCiB9OwogCi1zdGF0aWMgc3RydWN0 IGF0dHJpYnV0ZV9ncm91cCBncm91cF9zYW1wbGVyID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBh dHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfc2FtcGxlciA9IHsKIAkubmFtZSA9ICJmM2IyZWE2My1lODJl LTQyMzQtYjQxOC00NGRkMjBkZDM0ZDAiLAogCS5hdHRycyA9ICBhdHRyc19zYW1wbGVyLAogfTsK QEAgLTIzNjEsNyArMjM2MSw3IEBAIGludCBpOTE1X29hX3NlbGVjdF9tZXRyaWNfc2V0X2dsayhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJTlVMTCwKIH07CiAKLXN0YXRpYyBz dHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX3RkbF8xID0geworc3RhdGljIGNvbnN0IHN0cnVj dCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfdGRsXzEgPSB7CiAJLm5hbWUgPSAiMTQ0MTFkMzUtY2Jm Ni00ZjVlLWI2OGItMTkwZmFmOWExYTgzIiwKIAkuYXR0cnMgPSAgYXR0cnNfdGRsXzEsCiB9OwpA QCAtMjM4Myw3ICsyMzgzLDcgQEAgaW50IGk5MTVfb2Ffc2VsZWN0X21ldHJpY19zZXRfZ2xrKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlOVUxMLAogfTsKIAotc3RhdGljIHN0 cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfdGRsXzIgPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0 IGF0dHJpYnV0ZV9ncm91cCBncm91cF90ZGxfMiA9IHsKIAkubmFtZSA9ICJmZmEzZjI2My0wNDc4 LTQ3MjQtOGM5Zi1jOTExYzVlYzBmMWQiLAogCS5hdHRycyA9ICBhdHRyc190ZGxfMiwKIH07CkBA IC0yNDA1LDcgKzI0MDUsNyBAQCBpbnQgaTkxNV9vYV9zZWxlY3RfbWV0cmljX3NldF9nbGsoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCU5VTEwsCiB9OwogCi1zdGF0aWMgc3Ry dWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF9jb21wdXRlX2V4dHJhID0geworc3RhdGljIGNvbnN0 IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgZ3JvdXBfY29tcHV0ZV9leHRyYSA9IHsKIAkubmFtZSA9 ICIxNTI3NGM4Mi0yN2QyLTQ4MTktODc2YS03Y2IxYTJjNTliYTQiLAogCS5hdHRycyA9ICBhdHRy c19jb21wdXRlX2V4dHJhLAogfTsKQEAgLTI0MjcsNyArMjQyNyw3IEBAIGludCBpOTE1X29hX3Nl bGVjdF9tZXRyaWNfc2V0X2dsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJ TlVMTCwKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdyb3VwX3Rlc3Rfb2Eg PSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBncm91cF90ZXN0X29hID0g ewogCS5uYW1lID0gImRkM2ZkNzg5LWU3ODMtNDIwNC04Y2QwLWI2NzFiYmNjYjBjZiIsCiAJLmF0 dHJzID0gIGF0dHJzX3Rlc3Rfb2EsCiB9OwotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=