From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH v2] drm/i915: Make AGP support optional Date: Tue, 5 Nov 2013 14:00:08 +0200 Message-ID: <1383652808-25752-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: intel-gfx@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCldl IG9ubHkgZGVwZW5kIG9uIHRoZSBpbnRlbC1ndHQgbW9kdWxlIGZvciBHVFQgZnJvYmJpZ24gb24g b2xkZXIgZ2Vucy4KVGhlIGludGVsX2FncCBtb2R1bGUgaXMgb3B0aW9uYWwsIGV4Y2VwdCBmb3Ig VU1TIGFuZCBzb21lIG9sZCBYdk1DCnVzZXJsYW5kIG9uIGdlbjMuIFNvIG1ha2UgQUdQIHN1cHBv cnQgb3B0aW9uYWwuIEFzIGJlZm9yZSwgd2Ugd2lsbApmYWlsIHRoZSBpOTE1IGluaXQgZm9yIFVN UyBhbmQgZ2VuMyBLTVMgdGhlIHNhbWUgYXMgYmVmb3JlIGlmCmludGVsX2FncCBpc24ndCBhcm91 bmQuCgppbnRlbC1ndHQuYyBpcyBsZWZ0IHdpdGggYSBzb21ld2hhdCB1Z2x5IGlmZGVmIG1lc3Ms IGJ1dCBJJ20gZ29pbmcKdG8gc2F2ZSB0aGF0IGZvciBhIGxhdGVyIGNsZWFuaW5nLgoKQXQgbGVh c3QgbXkgZ2VuMiBzdGlsbCB3b3JrcyB3aXRoIHRoZSBwYXRjaCBhbmQgQ09ORklHX0FHUD1uLgoK djI6IE1ha2UgaTkxNSBkZXBlbmQgb24gWDg2IGFuZCBQQ0ksIGFuZCBpbnRlbC1ndHQgZGVwZW5k IG9uIFBDSQoKU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2NoYXIvTWFrZWZpbGUgICAgICAgICAgIHwgIDIg Ky0KIGRyaXZlcnMvY2hhci9hZ3AvS2NvbmZpZyAgICAgICAgfCAgNSArKysrKwogZHJpdmVycy9j aGFyL2FncC9NYWtlZmlsZSAgICAgICB8ICAyICstCiBkcml2ZXJzL2NoYXIvYWdwL2ludGVsLWd0 dC5jICAgIHwgMTggKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9LY29u ZmlnICAgIHwgIDYgKysrKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIHwgIDQg KysrKwogNiBmaWxlcyBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9NYWtlZmlsZSBiL2RyaXZlcnMvY2hhci9NYWtlZmls ZQppbmRleCA3ZmYxZDBkLi4yZDY4MDU0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvTWFrZWZp bGUKKysrIGIvZHJpdmVycy9jaGFyL01ha2VmaWxlCkBAIC01MCw3ICs1MCw3IEBAIG9iai0kKENP TkZJR19HUElPX1RCMDIxOSkJKz0gdGIwMjE5Lm8KIG9iai0kKENPTkZJR19URUxDTE9DSykJCSs9 IHRsY2xrLm8KIAogb2JqLSQoQ09ORklHX01XQVZFKQkJKz0gbXdhdmUvCi1vYmotJChDT05GSUdf QUdQKQkJKz0gYWdwLworb2JqLXkJCQkJKz0gYWdwLwogb2JqLSQoQ09ORklHX1BDTUNJQSkJCSs9 IHBjbWNpYS8KIAogb2JqLSQoQ09ORklHX0hBTkdDSEVDS19USU1FUikJKz0gaGFuZ2NoZWNrLXRp bWVyLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3AvS2NvbmZpZyBiL2RyaXZlcnMvY2hh ci9hZ3AvS2NvbmZpZwppbmRleCBkOGIxYjU3Li5jNTI4Zjk2IDEwMDY0NAotLS0gYS9kcml2ZXJz L2NoYXIvYWdwL0tjb25maWcKKysrIGIvZHJpdmVycy9jaGFyL2FncC9LY29uZmlnCkBAIC02OCw2 ICs2OCw3IEBAIGNvbmZpZyBBR1BfQU1ENjQKIGNvbmZpZyBBR1BfSU5URUwKIAl0cmlzdGF0ZSAi SW50ZWwgNDQwTFgvQlgvR1gsIEk4eHggYW5kIEU3eDA1IGNoaXBzZXQgc3VwcG9ydCIKIAlkZXBl bmRzIG9uIEFHUCAmJiBYODYKKwlzZWxlY3QgSU5URUxfR1RUCiAJaGVscAogCSAgVGhpcyBvcHRp b24gZ2l2ZXMgeW91IEFHUCBzdXBwb3J0IGZvciB0aGUgR0xYIGNvbXBvbmVudCBvZiBYCiAJICBv biBJbnRlbCA0NDBMWC9CWC9HWCwgODE1LCA4MjAsIDgzMCwgODQwLCA4NDUsIDg1MCwgODYwLCA4 NzUsCkBAIC0xNTUsMyArMTU2LDcgQEAgY29uZmlnIEFHUF9TR0lfVElPQ0EKICAgICAgICAgICBU aGlzIG9wdGlvbiBnaXZlcyB5b3UgQUdQIEdBUlQgc3VwcG9ydCBmb3IgdGhlIFNHSSBUSU8gY2hp cHNldAogICAgICAgICAgIGZvciBJQTY0IHByb2Nlc3NvcnMuCiAKK2NvbmZpZyBJTlRFTF9HVFQK Kwl0cmlzdGF0ZQorCWRlcGVuZHMgb24gWDg2ICYmIFBDSQorCmRpZmYgLS1naXQgYS9kcml2ZXJz L2NoYXIvYWdwL01ha2VmaWxlIGIvZHJpdmVycy9jaGFyL2FncC9NYWtlZmlsZQppbmRleCA4ZWI1 NmUyLi42MDQ0ODliIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvYWdwL01ha2VmaWxlCisrKyBi L2RyaXZlcnMvY2hhci9hZ3AvTWFrZWZpbGUKQEAgLTEzLDcgKzEzLDcgQEAgb2JqLSQoQ09ORklH X0FHUF9IUF9aWDEpCSs9IGhwLWFncC5vCiBvYmotJChDT05GSUdfQUdQX1BBUklTQykJKz0gcGFy aXNjLWFncC5vCiBvYmotJChDT05GSUdfQUdQX0k0NjApCQkrPSBpNDYwLWFncC5vCiBvYmotJChD T05GSUdfQUdQX0lOVEVMKQkJKz0gaW50ZWwtYWdwLm8KLW9iai0kKENPTkZJR19BR1BfSU5URUwp CQkrPSBpbnRlbC1ndHQubworb2JqLSQoQ09ORklHX0lOVEVMX0dUVCkJCSs9IGludGVsLWd0dC5v CiBvYmotJChDT05GSUdfQUdQX05WSURJQSkJKz0gbnZpZGlhLWFncC5vCiBvYmotJChDT05GSUdf QUdQX1NHSV9USU9DQSkJKz0gc2dpLWFncC5vCiBvYmotJChDT05GSUdfQUdQX1NJUykJCSs9IHNp cy1hZ3AubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2FncC9pbnRlbC1ndHQuYyBiL2RyaXZl cnMvY2hhci9hZ3AvaW50ZWwtZ3R0LmMKaW5kZXggYjhlMjAxNC4uMDc4OTY4ZCAxMDA2NDQKLS0t IGEvZHJpdmVycy9jaGFyL2FncC9pbnRlbC1ndHQuYworKysgYi9kcml2ZXJzL2NoYXIvYWdwL2lu dGVsLWd0dC5jCkBAIC05NCw2ICs5NCw3IEBAIHN0YXRpYyBzdHJ1Y3QgX2ludGVsX3ByaXZhdGUg ewogI2RlZmluZSBJU19JUk9OTEFLRQlpbnRlbF9wcml2YXRlLmRyaXZlci0+aXNfaXJvbmxha2UK ICNkZWZpbmUgSEFTX1BHVEJMX0VOCWludGVsX3ByaXZhdGUuZHJpdmVyLT5oYXNfcGd0YmxfZW5h YmxlCiAKKyNpZiBJU19FTkFCTEVEKENPTkZJR19BR1BfSU5URUwpCiBzdGF0aWMgaW50IGludGVs X2d0dF9tYXBfbWVtb3J5KHN0cnVjdCBwYWdlICoqcGFnZXMsCiAJCQkJdW5zaWduZWQgaW50IG51 bV9lbnRyaWVzLAogCQkJCXN0cnVjdCBzZ190YWJsZSAqc3QpCkBAIC0xNjgsNiArMTY5LDcgQEAg c3RhdGljIHZvaWQgaTh4eF9kZXN0cm95X3BhZ2VzKHN0cnVjdCBwYWdlICpwYWdlKQogCV9fZnJl ZV9wYWdlcyhwYWdlLCAyKTsKIAlhdG9taWNfZGVjKCZhZ3BfYnJpZGdlLT5jdXJyZW50X21lbW9y eV9hZ3ApOwogfQorI2VuZGlmCiAKICNkZWZpbmUgSTgxMF9HVFRfT1JERVIgNAogc3RhdGljIGlu dCBpODEwX3NldHVwKHZvaWQpCkBAIC0yMDksNiArMjExLDcgQEAgc3RhdGljIHZvaWQgaTgxMF9j bGVhbnVwKHZvaWQpCiAJZnJlZV9nYXR0X3BhZ2VzKGludGVsX3ByaXZhdGUuaTgxeF9ndHRfdGFi bGUsIEk4MTBfR1RUX09SREVSKTsKIH0KIAorI2lmIElTX0VOQUJMRUQoQ09ORklHX0FHUF9JTlRF TCkKIHN0YXRpYyBpbnQgaTgxMF9pbnNlcnRfZGNhY2hlX2VudHJpZXMoc3RydWN0IGFncF9tZW1v cnkgKm1lbSwgb2ZmX3QgcGdfc3RhcnQsCiAJCQkJICAgICAgaW50IHR5cGUpCiB7CkBAIC0yODks NiArMjkyLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfaTgxMF9mcmVlX2J5X3R5cGUoc3RydWN0IGFn cF9tZW1vcnkgKmN1cnIpCiAJfQogCWtmcmVlKGN1cnIpOwogfQorI2VuZGlmCiAKIHN0YXRpYyBp bnQgaW50ZWxfZ3R0X3NldHVwX3NjcmF0Y2hfcGFnZSh2b2lkKQogewpAQCAtNjQ3LDcgKzY1MSw5 IEBAIHN0YXRpYyBpbnQgaW50ZWxfZ3R0X2luaXQodm9pZCkKIAkJcmV0dXJuIC1FTk9NRU07CiAJ fQogCisjaWYgSVNfRU5BQkxFRChDT05GSUdfQUdQX0lOVEVMKQogCWdsb2JhbF9jYWNoZV9mbHVz aCgpOyAgIC8qIEZJWE1FOiA/ICovCisjZW5kaWYKIAogCWludGVsX3ByaXZhdGUuc3RvbGVuX3Np emUgPSBpbnRlbF9ndHRfc3RvbGVuX3NpemUoKTsKIApAQCAtNjcxLDYgKzY3Nyw3IEBAIHN0YXRp YyBpbnQgaW50ZWxfZ3R0X2luaXQodm9pZCkKIAlyZXR1cm4gMDsKIH0KIAorI2lmIElTX0VOQUJM RUQoQ09ORklHX0FHUF9JTlRFTCkKIHN0YXRpYyBpbnQgaW50ZWxfZmFrZV9hZ3BfZmV0Y2hfc2l6 ZSh2b2lkKQogewogCWludCBudW1fc2l6ZXMgPSBBUlJBWV9TSVpFKGludGVsX2Zha2VfYWdwX3Np emVzKTsKQEAgLTY4OSw2ICs2OTYsNyBAQCBzdGF0aWMgaW50IGludGVsX2Zha2VfYWdwX2ZldGNo X3NpemUodm9pZCkKIAogCXJldHVybiAwOwogfQorI2VuZGlmCiAKIHN0YXRpYyB2b2lkIGk4MzBf Y2xlYW51cCh2b2lkKQogewpAQCAtODAxLDYgKzgwOSw3IEBAIHN0YXRpYyBpbnQgaTgzMF9zZXR1 cCh2b2lkKQogCXJldHVybiAwOwogfQogCisjaWYgSVNfRU5BQkxFRChDT05GSUdfQUdQX0lOVEVM KQogc3RhdGljIGludCBpbnRlbF9mYWtlX2FncF9jcmVhdGVfZ2F0dF90YWJsZShzdHJ1Y3QgYWdw X2JyaWRnZV9kYXRhICpicmlkZ2UpCiB7CiAJYWdwX2JyaWRnZS0+Z2F0dF90YWJsZV9yZWFsID0g TlVMTDsKQEAgLTgyNSw2ICs4MzQsNyBAQCBzdGF0aWMgaW50IGludGVsX2Zha2VfYWdwX2NvbmZp Z3VyZSh2b2lkKQogCiAJcmV0dXJuIDA7CiB9CisjZW5kaWYKIAogc3RhdGljIGJvb2wgaTgzMF9j aGVja19mbGFncyh1bnNpZ25lZCBpbnQgZmxhZ3MpCiB7CkBAIC04NjMsNiArODczLDcgQEAgdm9p ZCBpbnRlbF9ndHRfaW5zZXJ0X3NnX2VudHJpZXMoc3RydWN0IHNnX3RhYmxlICpzdCwKIH0KIEVY UE9SVF9TWU1CT0woaW50ZWxfZ3R0X2luc2VydF9zZ19lbnRyaWVzKTsKIAorI2lmIElTX0VOQUJM RUQoQ09ORklHX0FHUF9JTlRFTCkKIHN0YXRpYyB2b2lkIGludGVsX2d0dF9pbnNlcnRfcGFnZXMo dW5zaWduZWQgaW50IGZpcnN0X2VudHJ5LAogCQkJCSAgIHVuc2lnbmVkIGludCBudW1fZW50cmll cywKIAkJCQkgICBzdHJ1Y3QgcGFnZSAqKnBhZ2VzLApAQCAtOTI4LDYgKzkzOSw3IEBAIG91dF9l cnI6CiAJbWVtLT5pc19mbHVzaGVkID0gdHJ1ZTsKIAlyZXR1cm4gcmV0OwogfQorI2VuZGlmCiAK IHZvaWQgaW50ZWxfZ3R0X2NsZWFyX3JhbmdlKHVuc2lnbmVkIGludCBmaXJzdF9lbnRyeSwgdW5z aWduZWQgaW50IG51bV9lbnRyaWVzKQogewpAQCAtOTQxLDYgKzk1Myw3IEBAIHZvaWQgaW50ZWxf Z3R0X2NsZWFyX3JhbmdlKHVuc2lnbmVkIGludCBmaXJzdF9lbnRyeSwgdW5zaWduZWQgaW50IG51 bV9lbnRyaWVzKQogfQogRVhQT1JUX1NZTUJPTChpbnRlbF9ndHRfY2xlYXJfcmFuZ2UpOwogCisj aWYgSVNfRU5BQkxFRChDT05GSUdfQUdQX0lOVEVMKQogc3RhdGljIGludCBpbnRlbF9mYWtlX2Fn cF9yZW1vdmVfZW50cmllcyhzdHJ1Y3QgYWdwX21lbW9yeSAqbWVtLAogCQkJCQkgb2ZmX3QgcGdf c3RhcnQsIGludCB0eXBlKQogewpAQCAtOTgyLDYgKzk5NSw3IEBAIHN0YXRpYyBzdHJ1Y3QgYWdw X21lbW9yeSAqaW50ZWxfZmFrZV9hZ3BfYWxsb2NfYnlfdHlwZShzaXplX3QgcGdfY291bnQsCiAJ LyogYWx3YXlzIHJldHVybiBOVUxMIGZvciBvdGhlciBhbGxvY2F0aW9uIHR5cGVzIGZvciBub3cg Ki8KIAlyZXR1cm4gTlVMTDsKIH0KKyNlbmRpZgogCiBzdGF0aWMgaW50IGludGVsX2FsbG9jX2No aXBzZXRfZmx1c2hfcmVzb3VyY2Uodm9pZCkKIHsKQEAgLTExMzgsNiArMTE1Miw3IEBAIHN0YXRp YyBpbnQgaTl4eF9zZXR1cCh2b2lkKQogCXJldHVybiAwOwogfQogCisjaWYgSVNfRU5BQkxFRChD T05GSUdfQUdQX0lOVEVMKQogc3RhdGljIGNvbnN0IHN0cnVjdCBhZ3BfYnJpZGdlX2RyaXZlciBp bnRlbF9mYWtlX2FncF9kcml2ZXIgPSB7CiAJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKIAkuc2l6 ZV90eXBlCQk9IEZJWEVEX0FQRVJfU0laRSwKQEAgLTExNTksNiArMTE3NCw3IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgYWdwX2JyaWRnZV9kcml2ZXIgaW50ZWxfZmFrZV9hZ3BfZHJpdmVyID0gewog CS5hZ3BfZGVzdHJveV9wYWdlCT0gYWdwX2dlbmVyaWNfZGVzdHJveV9wYWdlLAogCS5hZ3BfZGVz dHJveV9wYWdlcyAgICAgID0gYWdwX2dlbmVyaWNfZGVzdHJveV9wYWdlcywKIH07CisjZW5kaWYK IAogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9ndHRfZHJpdmVyIGk4MXhfZ3R0X2RyaXZlciA9 IHsKIAkuZ2VuID0gMSwKQEAgLTEzNzYsMTEgKzEzOTIsMTMgQEAgaW50IGludGVsX2dtY2hfcHJv YmUoc3RydWN0IHBjaV9kZXYgKmJyaWRnZV9wZGV2LCBzdHJ1Y3QgcGNpX2RldiAqZ3B1X3BkZXYs CiAKIAlpbnRlbF9wcml2YXRlLnJlZmNvdW50Kys7CiAKKyNpZiBJU19FTkFCTEVEKENPTkZJR19B R1BfSU5URUwpCiAJaWYgKGJyaWRnZSkgewogCQlicmlkZ2UtPmRyaXZlciA9ICZpbnRlbF9mYWtl X2FncF9kcml2ZXI7CiAJCWJyaWRnZS0+ZGV2X3ByaXZhdGVfZGF0YSA9ICZpbnRlbF9wcml2YXRl OwogCQlicmlkZ2UtPmRldiA9IGJyaWRnZV9wZGV2OwogCX0KKyNlbmRpZgogCiAJaW50ZWxfcHJp dmF0ZS5icmlkZ2VfZGV2ID0gcGNpX2Rldl9nZXQoYnJpZGdlX3BkZXYpOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvS2Nv bmZpZwppbmRleCA2MTk5ZDBiLi5iMGY2MTY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9LY29uZmlnCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcKQEAgLTEsOCAr MSwxMCBAQAogY29uZmlnIERSTV9JOTE1CiAJdHJpc3RhdGUgIkludGVsIDh4eC85eHgvRzN4L0c0 eC9IRCBHcmFwaGljcyIKIAlkZXBlbmRzIG9uIERSTQotCWRlcGVuZHMgb24gQUdQCi0JZGVwZW5k cyBvbiBBR1BfSU5URUwKKwlkZXBlbmRzIG9uIFg4NiAmJiBQQ0kKKwlkZXBlbmRzIG9uIChBR1Ag fHwgQUdQPW4pCisJc2VsZWN0IElOVEVMX0dUVAorCXNlbGVjdCBBR1BfSU5URUwgaWYgQUdQCiAJ IyB3ZSBuZWVkIHNobWZzIGZvciB0aGUgc3dhcHBhYmxlIGJhY2tpbmcgc3RvcmUsIGFuZCBpbiBw YXJ0aWN1bGFyCiAJIyB0aGUgc2htZW1fcmVhZHBhZ2UoKSB3aGljaCBkZXBlbmRzIHVwb24gdG1w ZnMKIAlzZWxlY3QgU0hNRU0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCmluZGV4IGEwODA0ZmEuLjI4 NTcwNjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtMTU1LDcgKzE1NSwxMSBAQCBNT0RV TEVfUEFSTV9ERVNDKHByZWZhdWx0X2Rpc2FibGUsCiAJCSJEaXNhYmxlIHBhZ2UgcHJlZmF1bHRp bmcgZm9yIHByZWFkL3B3cml0ZS9yZWxvYyAoZGVmYXVsdDpmYWxzZSkuIEZvciBkZXZlbG9wZXJz IG9ubHkuIik7CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBkcml2ZXI7CisjaWYgSVNfRU5B QkxFRChDT05GSUdfQUdQX0lOVEVMKQogZXh0ZXJuIGludCBpbnRlbF9hZ3BfZW5hYmxlZDsKKyNl bHNlCitzdGF0aWMgaW50IGludGVsX2FncF9lbmFibGVkOworI2VuZGlmCiAKIHN0YXRpYyBjb25z dCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfaTgzMF9pbmZvID0gewogCS5nZW4gPSAy LCAuaXNfbW9iaWxlID0gMSwgLmN1cnNvcl9uZWVkc19waHlzaWNhbCA9IDEsIC5udW1fcGlwZXMg PSAyLAotLSAKMS44LjEuNQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK