From 4814624cffd41b98e8b143d996b4bd8fcb94dfb1 Mon Sep 17 00:00:00 2001 From: John Date: Fri, 1 May 2020 02:16:42 +0800 Subject: [PATCH] change binary content from hex string to base64 string for package gres --- os/gres/gres_func.go | 45 +++++++++++++++-------------------- os/gres/testdata/data/data.go | 6 ++--- os/gres/testdata/testdata.go | 6 ++--- 3 files changed, 25 insertions(+), 32 deletions(-) diff --git a/os/gres/gres_func.go b/os/gres/gres_func.go index 10d04bb5d..0a3fa98e3 100644 --- a/os/gres/gres_func.go +++ b/os/gres/gres_func.go @@ -9,22 +9,24 @@ package gres import ( "archive/zip" "bytes" - "encoding/hex" "fmt" + "github.com/gogf/gf/encoding/gbase64" "github.com/gogf/gf/encoding/gcompress" + "github.com/gogf/gf/text/gstr" "github.com/gogf/gf/util/gconv" "github.com/gogf/gf/os/gfile" ) const ( - gPACKAGE_TEMPLATE = `package %s + gPACKAGE_TEMPLATE = ` +package %s import "github.com/gogf/gf/os/gres" func init() { if err := gres.Add("%s"); err != nil { - panic(err) + panic("add binary content to resource manager failed: " + err.Error()) } } ` @@ -76,7 +78,7 @@ func PackToGoFile(srcPath, goFilePath, pkgName string, keyPrefix ...string) erro } return gfile.PutContents( goFilePath, - fmt.Sprintf(gPACKAGE_TEMPLATE, pkgName, bytesToHexStr(data)), + fmt.Sprintf(gstr.Trim(gPACKAGE_TEMPLATE), pkgName, gbase64.EncodeToString(data)), ) } @@ -93,8 +95,12 @@ func Unpack(path string) ([]*File, error) { func UnpackContent(content string) ([]*File, error) { var data []byte var err error - if isHexStr(content) { - data, err = gcompress.UnGzip(hexStrToBytes(content)) + if isBase64(content) { + b, err := gbase64.DecodeString(content) + if err != nil { + return nil, err + } + data, err = gcompress.UnGzip(b) if err != nil { return nil, err } @@ -115,32 +121,19 @@ func UnpackContent(content string) ([]*File, error) { return array, nil } -// isHexStr checks and returns whether given content is hex string. -// It returns true if is hex string, or false if not. -func isHexStr(s string) bool { +// isBase64 checks and returns whether given content is base64 string. +// It returns true if is base64 string, or false if not. +func isBase64(s string) bool { var r bool for i := 0; i < len(s); i++ { r = (s[i] >= '0' && s[i] <= '9') || - (s[i] >= 'a' && s[i] <= 'f') || - (s[i] >= 'A' && s[i] <= 'F') + (s[i] >= 'a' && s[i] <= 'z') || + (s[i] >= 'A' && s[i] <= 'Z') || + (s[i] == '+' || s[i] == '-') || + (s[i] == '_' || s[i] == '/') || s[i] == '=' if !r { return false } } return true } - -// bytesToHexString converts binary content to hex string content. -func bytesToHexStr(b []byte) string { - dst := make([]byte, hex.EncodedLen(len(b))) - hex.Encode(dst, b) - return gconv.UnsafeBytesToStr(dst) -} - -// hexStrToBytes converts hex string content to []byte. -func hexStrToBytes(s string) []byte { - src := gconv.UnsafeStrToBytes(s) - dst := make([]byte, hex.DecodedLen(len(src))) - hex.Decode(dst, src) - return dst -} diff --git a/os/gres/testdata/data/data.go b/os/gres/testdata/data/data.go index b65c1a1c1..a78334efb 100644 --- a/os/gres/testdata/data/data.go +++ b/os/gres/testdata/data/data.go @@ -3,7 +3,7 @@ package data import "github.com/gogf/gf/os/gres" func init() { - if err := gres.Add("1f8b08000000000002ffb45a793894ebff7eb2af214b2a21629031b648b214b28c7d8b521a0c711861ec2d2865494aa1d27650a4639b882329957dcb96b4280a917d44847e5784f71d63c9f97dbbaef8c773dff7e77e9fedfdbcb7219a928a03d0013a3088753404907feb003db075c5d93b3aa0667e49e05d5d9ccd4ca9c19a8e9df687c42a7491282df132c30c33c3ba9ad21abd46140ad584d2ae42966a8b6b23cddbc22474f4cac4cfb71b1b1a1a6a9589579b837bb2b2d24d322f655eca6449cbc8e534481952a011086187449b8b72a6145400fcfc6988a6a5bbfeec829d3900c01e00b0b83ce679792ebe128e38c7ff5765c6f3cacce7957d0f5453245506805ad04d98329a3965d39254c6530efd1a0cfd93c5cbda30371869ebe9817775f99f996f345fa2d97c89a6ea726f97379f6381caffc133309917b86f5ea0246dfbe9e59f0133a9c0651f050097dde01874801ed839ba4ba13c3c6da68737bffb9327c90519feeb3f128ff5c04b49e07df0f32e49e8d521b5911252a65ad535dbb4abb6ad992bb3e0c1a59deb01006c4b7230cc724c63cfe392c70ca15499629f366729eba87e63aede31e9ffe69834cc3169f28e192fa8ce3f929772c58e494f3b260d776c21a69e0aa164c58e49af62b933017ae028b50387c2e2e02bbcad5cabaaac6c5f8699e11090ba9c5b4e0c7737569d38caaa46cf3a2bced61ba9ca0700e05f198313663106bf773bc6dcea3f9744dce7939738f62ef750e8fd5d4f4410d45b897625599d26fe97c19a594e23077e2f2900c0b69571ba7b2ec69927f9d3e679f0e6f572075ffb656aff2614cfef7c763e9c592700ccd5b823ef2f24004064493e96593ebf2348357d38e57c9504efc2fa3bfed1335e3ea550bcab74eb4d0215dd2c55574b7984100060cb8aa94cf7fd3f52919f56bfa856b110197f0f45da39baa3b0b855ae450802ea08d6d9d975a9293a3f47dcbf3ad972000058ff88c0dbd5ddd98e8440ac0655ae6d946166c8400b25b8c1e689202558c60327cc7ff5c009f3db035fcc020f728c17aea1f9759a6f2f66c93f7db4ff09d98c1f30b2693b328d0dfd08b66f88f79420cbe4e66e6b67aee9d9b96247dc3d57e108271ce1b723d0837f91053eef86f3b12d229ba7ebfd13a2193760378cd9b9919741ba6960bff63e5abfecfc580ba598de385661c8860520bf3d71f270c5cd694de9f875cd319cf186603cbf3f38ad999bd4055b18f3969f2564f866ac21c7376311617ec25865cf9bc4d08b9e22e55bde24d37dab30897b01c86f937c20939b90995e5a652482468a5557d63c30936e903134d6aa42571b9455a273ccc490daf5d986849c4f8432d9acd2079f7ed5975136bdf6fc67cc7419deb24b62d3f10c06d5b91259fdb8220d0000067faa6ec6d2ffa84e747ab5facf582f37ceca1b1ba16c41cd3f2b6e5c58375a9f44dcc233800e226e15d70bb6d9e1f68eced8ffdd1d034ee38459e91e3973ec17e9ecee2a3bef58933422b286629698a3b8c2e2d745437449625618b1bbe74ab6a245ef1acf8c5193e20000c4b2af3ef39433178e858b6fc152c7ab06b58f6928881e2edc5c7fd3a0d7a82d857aee96a96c887a280100105f92989d94d874dffffb020ad1f53d61a41ff6fed2b4c8ccdab303b9cec3857ef3bb54996a793d0600e0b8e4aca5874a5de57b84bbab2b1e65ebe1b18afd661d6438ca03efeb8c959805fa65549d71f2f4fea85551b3ad1659fd8f4eb6b1a49c5872060d634ca2f9e52fc21d76773b2d45b72675442772597a3452cccd49b1169beeed0000e925c533ccb23bba601cb0ab90cf0e034039bb3ab84a1cc539cce9778ef5ddd1f0d7a69224e9e850819d312fafa85bda579ee656c3488eb8941acbda97958adb0bfb3797b81bb2373fe0288bda7ec054e0b4020741e847946db957d49deba3eefafdbe359e2d44ab266249ffd47195d1d182f41f539da1990f65b9a8b4830008b84d4fe3c20800eba3d18f2700e0f750cea300a007f366e3574a9d47777e9ddd2a9b3fbda0026b437b5a94028675ddc06157d10d5f4bddb32435db1c3944ceab7a20f64c8ae09ff6ed1edb32298267b8184cf9c3283f5937f1d6dacf2cd451e5ea7d6730ac037ceb5e6ddf1c9210bcfd7540317f50e3df4e86662112744c3409dc54ebeab85c86291d58b576b2b270859f3f5d78ecf8f1bf0b1cfe962d36e3b642a319ef86056c611563a2d00eee32c0b64e9826575e3a293ce6ca2b7b31d4e14297b8740443cb64f1bff5690ff0fc17f8aea9d444ee141d7e722eb992ef60ab23c715bef36b4fa999617ed2b00d9c941afeca94aea223f811a38e1208d6c24a618e8a4c582b705d551ff7ce79af72f24dd754a4da98d1172d4a1ab612817837f178893d9c6977e253d2e2530283052f38b069e5e6c9308cb0d43e6995a589d94bac6b7c9b4db9e9e20675eb8d9f36b23b1f4e1a919f38fb852f9f3a425578ece7adc73b8d0f52fa9a13cf4e7e503ff99cde676b68f1ed8f1679760c7d626c7b930e69144ead9f8873cff14fe43ca59b4838fa48ad3e38e1f0cff53ffa03303faf0cdcfa4af92353258f9fa327fd600335f2d1703f25502d143ea2f40fedc0a50446664511b731b16f62d9778fabe49859ed3eb6ff8b88e187f306523d2382fe8f0e099af887144c6ef831853097576e0bf7d4c80cd6747ec8726e97fcdd1767760b44062194fa2b2a84e9be5b5c3975ffebd840e021a507efb2a83b5dd262ce05e40bb5f4543a0ded94ef3d53efd34b1cb5dd87ae76088bd5fde2f71977f674678cf515cbeb5f418bf188a09d682ca3423adb9913b116270b82b63494c63659aadcb79434e3dcf4cedf6660d4d3e6c20bf92bef2ed329e57d216e10a365bc9c2dbb11a79d9775938f474db136c02598d787ae76c0cb5518cb98f6f5c5615c5c194553339ebf1d19bfef75b7717053e2f3ab214c15a704aee6f48809becadf2c9ec656e476ea62d879691d04b34f1267035e4f331c59a441773dd4d4fcf16b3f9efd7db2bd416dac5eca9aeff7aa88eba69a4e55d59ecf55c7b1071a9cc308a6b4d7d6f3d8df3f52696b1b60ee6b2c542b9a436ddcf6445d39e683a6f4f349fbe091ea37dc6ca278eb619623866d748f2b2a1f257cbef813bd51c73df0a44198f1d05d1aee83dbf15c125ef7bb3b238379f404eb3f47e388da03a2593fbed5bef288bafd3066728386d6b773212c7b1e74b9a9d48c0f70721b6da565fdb71c8174ac517bfe98daa1fb6892aecf796d1a6785973906de027563c68fd2fbba4c77f2587c2b3b8819b072ed74b24a7d30f27c58a4705d781e33eda3e7c26bd47a55144e5b4d3d7d1e7b1581b2ed258cac3ff8da947d704d1c4f79b845d1d556ec4753f1617cebbd7cf4cbc1c06e29a9239fd383d5b63a20c25f7b6f4458bd441c4997c1f1efc115c5553b0da816d29ed111646e1cdffc8e654ce02ffbbd88e0565b0bf9ace1f766fc2ae69d49b7b00adc47af29a8df1d896d90dbbde59b2d63e243d5de338d7f95e6296eca5518de4c11f82cf3103aa5b9422d619da43b86bf30e86c1373ff05b74d77ccb57cb36d151bc5d283dd541a2dcbcccf6e8eb5f9607473e7d6fc898e8897539386cd3dbc13a82e658394fbd67e0e87426b427bfe6ab1e826b46a5dc39f09ef961d51ab373caef5ad2c99eb1d7ee2e24d7f243bfbe1b207ebc4f9f8b42aa2fca9f7260dbe9f7492f3ff64156cf9c46cea689877f15b44859f77fc0d4b07d409715f7641a6b0c49afc87f4365e0a03c5296b3f9e6dbd7a6d4af36dc94442d48f6add7b252197e5a334cedc6738877c90f72164e0015f09c1d17dc783d6c3a25517d2385e9f221004959ef85f7ff46ff69b6f83c11f0ee0930b886ded016154a9672cbcfccc1b785b65eeaca9898fc4a8f27ecf3a9a2be7ef5cf9edadee091dabaaf0c1f59ad591db43a8f3a8e9f9760810c5dc75637b65bb43269d6f3868b57044e6846a32f0760e65e7681daf3af2e27113773d76408fc59f38a420efbd335ace4b27d67dbd6fa05a761671efdebd7b06f70e120dfe51cd98a03250ac546cb4cbd0283089a5638972ad11111f6c69d3e129d0f3c9ed7492ff6be86dc79bbd754f477efc85fd9799b9ffdf096431a5d99ac842ae83d7e49b98384cf284f99a788bf586af363aa69c29cd7538399eddfcf19a9c52344a92ffb65488ad75674cde7e4dced49697e8a7df7fe2aeb1d78597161fb14b4e0f2bbcfe6ca476a31afbdb12663e73bc9d9c2783478129c2ac38ef468a65fc50784b247344bc2edd2e57394e96962ef7035d694f2ba4142b77e3c4eccd9f7e6764db488d8a374051ebb99afaada5197e5dafef7d44f0a295e66725c14faa2ede81c7820432ab9a8b8ada8e6a3e484ab5572cedabb54a7ea17bb9dd593b6ef253fcb544258b8f87fb631cb698135e372bf459b10e4c8650b26a3aa7e4e4470a5c92966389efe343d2e5f0fa0ce51204d8b77fcbb27b77a7a3fc63f3cdd050a637277a29b169484b1be5ef8e0f0fbf9d8c7b9183d990dabedff30397ad60d8b54f3bd28b62ff61fc9accdfb4a5e8464f6facee13544e505c8401155a4f5cff55c16b53be2d4ded92a7a58ea9079a3047987432bdc450ed38d97f56e67351a8f258828e7795d05e6bf1b1b54a8f4f944a1f881dba3654b037a393a89578ad5a56e950df371943af26fb31f4c53ab76c8aaf791d2de3b963b9f81c86b384b83dbd3989074ade07dd7972f2675febe0b88effb3a4bfc33631eb2306ef8adeec4ac8addf91748338782efd98f7e4e5deb8f692728bb6cc9abab808bbf68a7de6f949b4177ab2e4d47af0885dcf6f1ea366fb71fb55052e72dc58e04972cff5f4d7bbf6251d79dcb5595f7bac81f1d93df5a980a4d38dbc870acea54ad93ad372fa59a59e97aa3b713a50dfb2de946ea0ff9280efaeb0015d5d968b6a711c6fbab262aa15f98ebfd98c98e8f5d7e8d68813e0b7e0c0aba21b0efaf0cb4bb6ee7f61fb76dd9b44eee4c18edebc76db8652fe1d16e6fb2f95fabde92148341847f348e5b0487bf377d46ad9fa173fbf27cf802420aa46aba3d246bfd86fe7ee267eb07308ad418cb1ecd3afa0cf5c3fa97ac627629dae559c80f2d6d1afe8c84ad3c0e0f8d8726937d690f5ec01fc25dbae17a8df2efd7c43f1f48fbb78abc74c0d070e50f688342a9ab81fabdec82bf5fe59fff6b70caed88d147105c2dcd63eed6bf0c5c24dcdea060392ef76ba947dc72a7f19d6da4a4c88192dbc742aaf75b492afb2e3e193e663ed441ddda20c3b61046bd17baf77fec7326fe3b387f7285bd388950c56f38fe01ddb7238d7f7df147e2491468c30121c56669d68711f919a64a6cecf29c4b6a665559627450decc0b6a6b5bcaabef2cf9553c63a569ef184e1079287b666b9ddaf407e437b7e24f6cbc4445498e172f32d37f51cffee6a5e364c7b4f0f5156834af5e9b823e2eb41d5a0922c7dfb457bb3b5c1b8957db5615b4eba52e6049e5ba039bd2653e1ee7b5dc4a5dc978ef12e96934e21db6eb8b4f11e4c7f8539a89db6b541137176bc4083f9c5beae4acae7e9a8f28c032396110d8a031a42a5f9bbdcf599475b0347de1622ff5df74fc831a7c38fd41dae79d34ec6f61e30c111f2c6d7b56a1f3539ed1d7091e76fffddfab84c8e54e1706e5fbc4ced5611e5128ffeb7c1eb8a82fc8c26f89fb46e6a28e67d711bdbe7d2f4b2d9e673b9ab47d0b5046bf7b349a77c15df2b4f6608c90652ef10c81ba9edddd65d775de3622a0db2bfd9e4fbb10b2f2c9088f5c187df95d69f602bd8b8e3c307be1bf8411b374fbcb3d4dd97a3f28e598a0689b8a8c80f85e3e5410d263fd50442a7d28ed3f05e31e1f4e5947e96f67c54b5a8afa58da6a839953dba788fd8541a333385390b27aef29bd697d772dc5e5cae2627f41eddf28a4df6614bf827277ba4b178a8d11e758d862fda8da755c6430c974777fd84e42baca4d42ea5268bf4ef5ad901fa8c876e6d3ec084573d49d3d1c0b8e16357eade2fba53f9c967f4a232a33136631c2c9de343ee31871e136cee871eeca7cd330d37f67a1b6bde75aab2eeb370e679fc907ea6162e5b87101ea4a8dc79e65943cda9ef0ea3fbc33bd4d1bc9e7cd1f435a76f981dee978cc4c612c5b5ab79c2033275580abac264b32b9b23c219589514d88a681a34dad158e2ad86a4c2eb7def7884060dea4c2e2566b3e2424dae1f92de562714d99933747b97a0d5279e9da837c279278610fab123859cf733341d68ac02298edf37d53f4a2ccf0d949d7cfda9e7d3d9b754578ad98605f661ce06dba00b38a87731f4c8f60d4b476ef0c811616d7c38e2f4289dfed27b7734fa44f7cd9198c662e9e30db5d93d20dead475d85b17cbb1d95df6bac8c9eb5c66319b437b27c9bcab997cd21571823553d58dcc2945d53470e05b4491fd68c6b5241d33adf48dabc472589b7206b6267a54f9a6dff3ec6c87e9b3804bae6ecde819c7ee5685d2664ed9df17dcfa6d8e7ba7efdb703329800b8ccbc5c737de6cd076787f591388287bcde8a57d7ba14f333517d74900e2e0283146744f35437f264306c79661eed6c7d71ca20a63fd140b3687f4478c2b30361e11ea6ed138185db7db293085cf644431abec2fe94ef77bfa67517de0c3f255fc0fc810f719a2fb4c0dfaf436f6893f67e9acdfe03750f2b2dfcfbbe7adaf3d13b3cc94d1760883f1cbcbbfa853c4f827ce929cf1bdd4ff67eef9b649cad08d3fbddf41c00e0e1b23dfc5f15ada277f3eb35108f7539ea8cc163c91932246e84321729d3322bad446ba71a8afcfeb66aa65551a9dd4839d75c781c23020401009b977c6965859239637c5d3d7f7f4efcb357573e3230285b571c1ee388c3bac3f5a7a4e96beb5554a2cd0c75aa6bb6695756a291c629a9ed8432c92c8f915146b7e1610f66426d8d64d6a79434fd2af4bdd4f9868910eddb7e790080d4926278c889b17775c52fa1a4a206a53d2f8338cae2b69806d36245ade5bf8491d570048bb15b5c43b9969eee8c86991e8d6416f1a8277e511de3fe17eab70300507fae63e6375c07c1083fe8bd3694e9a859a9485955e62742a0d1bd50512f2b0606060639a1ab420af7bcfac6701aa1ffde63500e8d1ebb232437ce6a9411d6dd1dd5f02ee8fa8b28536aa10b050d0277deec97d8743c64839cf69868b46182b174054794c7baf07097e8282251679d0cd138fcb224f3eed2c6577b64bb93ec6230d72ec6dcb20e6a04c95429b84dc743d0cec38527a8e68a2cafbeb8250a0030fea793587a1593988c57d264e70dc91c995f73fb9d87ab38493ec7ac9087dcdc20c0e7c03c8fb852f3ae55f2907bf62969d595e86a513dedd94958572152566564fcf27e6afb9ed2ae7661fb8e608ecfb7e9b7dd69ef8ce5ff6bfe3339d55827edaf39a8bfe4e3e124a7c305e3b89acf93fc8b614dff9022e39fe7f0b04c16dcbe4abddee90f956bff0395f42254244fca46c5b79d948a7cb77f966a8913630d0507e5bc56685c6a1da09ffbbbc4c05f3f974870910241d34dcc30a05bf34024399f790cf239a8d985f973b7c21ab03015051700cd1e6d8009f09a1bbc542a8a140f1a15e280e1f15080a5f34b4bd5c50cabeb31291499f2c877b867317a77afa104e49246f06aa089202e5835aa90e18b248d48c1a05120061858e22c183c52b49421543043beff0658850f3254805c7e082e1d9af381fbe00e19be487e88140c1af081fbf06a160c1e145ab90f62d480341504e7867e5b63827163a901f954102904348e0387289985208dfd2c500149d8c021146900f9140f290434cec20283b83f0b412698b372142e5ab068e666e5cf23f037ca8ae625236c5ee6ff1eba304e032f019a7c814fcd293802b9380d291834e50207b3a603cb4567565edb5328182c260397034db1c0e550d083e56232a460d0bc0a1ccc95048c4c0c66e5b5d541c1608117b81c68268513268783012c137821c582864fe058c749b016665a96aa6c2dacb28f502cd2f00ac9b9010996c04f552146b082f00a291e343802c78b5e8847269cb2f222a999c0e2e113b82868d4831b264a67010899f009291c349c0187fbb2106e615a64a94d890eb62905330372f98ec50f0a36989a17b3c3c9e63b4871a0990a38ceb6b560890007290e3428c10abf3cc07048f218a430d0d803fc7ab69e052c9db1208582c612d861501748a14852134b3d2a7ad8a352640564430d2bbddcf8b30272a1067821d08801fc329f07194e26d4b0940e06988e1d6c807c3e81644f8474ece096fac20016e6134891a09d32f8c1eec10b16edf7adfc60d7e003a43d36b800680b0c5e4a001f58b2c7b694abac30577ba1480b1b687041d0fe151f4c902c3f5871036dc1eb13a423c503432d24874aaea3b1601f843497e0901a5bc0ca1a5ba490d0560e1cb28a1c24b93ec5ca9f0a41002cd511822b83766de0cac6c8c0acc83f6883060e8911042b6bfe9042427b2d70c83272907fea1f27cc3fa3ad60d9960d5c1eb4a7c20f937763312c722d1b525868ff040e4b270456de9e59f9c1ec0181856c2cd434bffe401928037f360008bfde57c0ff050000ffff8ec4b6f643370000"); err != nil { - panic(err) + if err := gres.Add("H4sIAAAAAAAC/7RaeTiU6/9+sq8hSyohYpAxtkiyFLKMfYtSGgxxGGHsLShlSaJQaTso0rFNxJGUyr5lS1oUhcg+IkK/K5L3HWPJ+X27rvjHc9/3536f7f28tyGakooD0AE6MIR1NASQf+sAPbB1xdk7OqBmf0ngXV2czUypwZrOnfaHxCp1kSgt8XLDTDPD+tqyWr0mFArVjNKuRpZpi2sjzdvDJHT0ysXPdxgbGhpqlYvXmIO7srLSzTIvZF7IZEvLyOU2ShlSoBEIYYckmyg5UwoqAH78METT0l17esHOHABgDwBYXB7zvDwXXwlHnOP/qzLjeWXm88q+BaopkioD4FLUDZgymt/KZiRt4Lx36Odg6J8sXtaG34ORtp4eeFeX/5n5RvMlms2XaKou92Z58zkWqPwfPAOTeYH75gVK0nacXv4ZMJMKXPZRAHDJDY5BB+iBnaO7FMrD02ZmeMvb1D94klyQ4T//I/FYD7yUBN4HP++ShF49UhspIWWqVVO7Tbt625rfZRbev7hzPQCAbUkOhjmOGex5XPKYIZQq0+wz5ixlHdUvzNU7Jv3fHJOGOSZN3jHjBdX5R/JSrtgx6RnHpOGOLcTUUyGUrtgx6VUsdyZADxylduBQWBx8hbdXaFWXl+/LNDMcBlKX8iqI4e7GqpNHWdXoWefE2XojVfkAAPwrY3DCLMbg93bHuFvDp9KIe3zyEsfe5h0KvbfrsQiCeivRrjS7y8T/Elgzx2nkwO8lBQDYtjJOd8/FOPMlf9g8C968Xu7gK78s7V+E4gVdT8+HM+sEgN817sj/CwkAEFmSj2WOz+8IUk0fTjlfJcG7qOG2f8ysl08oFO8o3XydSEU3R9XdWhEhBADYsmIq033/j1Tkp9VPqlUsRMZfQ5F2ju4oLG6VaxGCgDqCdXZ2XWqKzs8R9y9OthwAANY/IvB2dXe2IyEQq0VVaBtlmhky0EIJrrN5IkgJlvHACfNfPXDC/PLAF7PAg1zjhWtofp0W2ItZ8s8c7X9CNusHjGzGjixjQz+C7WviXSXIMrmx29qZa2Z2rtgRd89VOMIJR/jlCPTgX2SBz7vhfGyLyOaZev+EaNYN2A1jbm7kZ5JuGtgvfQ/XLzs/1kIpZjaOVRiyYQHIL0+cPFxxv7Wmdv685hjOekMwnt8fnNb8ntSFWxjzl58lZPhmrSHHN2sRYX7CWOXMm8TQh54m5VveJNN9qzCJewHIL5N8IJObkJVRVm0kgkaK1VTV3jeTbpQxNNaqRtcYlFehc83EkNoNOYaE3I+Ectnssvsff9aXWT6z9vxnzXQZ2bJLYtPxTAbV3yWy+nFFGgAADP5U3ayl/1Gd6Mxq9Z+1Xm6ClTcuQtmCmn9O3ISwbow+ibiFZwAdRNwqrhdsc8PtHZ2x/7s7BpzGCbPSPXL22C/W2d1dft6xNnlUZA3FHDFHSaXFz4uG6JLErDBid8+VbEWL3jWeGqOmxAEAiGVffeYpZy8cCxffgqWOVw3qGNdQED1ctLnhhkGfUXsq9e9bprIh6oEEAEB8SWJ2UmLTff/vCyhE1/eEkX7Yu4szIrPqzg7mOY8U+c3vUuWqFQ0YAIDjkrOWHip1le8R7q6ueJSth8cq9pt1kOEoD7yvM1ZiDuinUfXGKTP7o1Zl7bY6ZM0/OjnGknJiKZk0jLFJ5pc+C3fa3emyFN2a3BmTxGXp0UTxe06Ktdr0bAcASC8pnmGO3dEF44BdhXx2GADK2dXBVeIozuG3fuc43x2Nf20qTZaOCRXYGfvisrqlfdVpbjWM5KhLmbGsfXmZuL2wf0upuyF7y32O8ujtB0wFTitwEIS+R9tWeEXfvjbmrj/gW+vZSrRqJpYOTB9XGRsrzPg+3RWa9UCWi0o7CICAW/Q0LowAsD4c+3ACAH4P5XwKAHoxrzd+odR5ePvn2a2y+eNzKrA2tLdVKWBE1w0cdhXd8KXMPVtSs92RQ+S8qgdiz5QI/kn/7vEtUyJ4hqhgyu9GBSm6STfXfmKhjq5Q7z+DYR3kW/dy++aQxODtrwJK+IOa/nYyNAuRoGOiSeSmWlfP5TJC6cCqtZOVhSv8/OmiY8eP/13o8LdsiRm3FRrNeCcsYAurGBOFdnC3AbZt0jSl6uJJ4XFXXtmoUIcL3eLSEQytUyX/NqTfx/Nf4LuqUhu5U3Tk8bmUKr6DbY4cl/nOrz2lZob5QcM2eFJq5AtThoqO4AeMOkogWAsrhTkqMmmtwHVFfcI7953Kydfd05Fq40aftShp2EoFEtzEEyT2cKbfTkhNT0gNDBa84MCmlZcvwzDKUve4TZYmdi+xvulNDuWmqA3q1hs/bmR3Ppw8Kj959jNfAXWEqvD4j5uPdhofpPQ1J56deq9+8hm9z9bQklsfLPLtGPrF2PYmH9Ioml4/Ge+e65/EeUo3iXD0oVpDcOLhH+u/DwRgflwevPmF8nuWSj4/R2/GwUZq5MORAUqgWiR8ROkf2sGLiYzMiiJu42JfxXLuHFfJNbPafWz/ZxHD9+cNpHpHBf0fHhI08Q8pnNrwfRphLq/cHu6pkRWs6fyA5dwu+TvPz+wWiAxCKA1UVgrTfbO4fOrel/HBwENK999mU3e5pMeeCygQau2tchreKd93psGnjzhmuw9d4xAWp/vZ7xPu7OmuWOvLlte+gFbjUUE70ThGhQy2MyfiLE4WBm1pLItrtlS5Zylpxrnprb/N4JinzYXn8pffXqJTyv9M3CBGy3gpR3YjTjs/+wYfj5piXYBLMK8PXd2gl6swljH9y/PDuPhyiuYWPH8HMmHfqx7j4OakZ1dCmCpPCVzJ7RUTfFmwWTydrdjtVFTYeWkdBLNPMmcjXk8zHFmsQXct1NT80Ss/nv39sn1B7axeyprv9qqI66aZTlfXnc9Tx7EHGpzDCKZ21DXw2N87UmVrG2DuayxUJ5pLbdz+WF059r2m9LMp++DRmtfcbKJ46xGWI4btdI8qqx4mfor6gd6o4x540iDMePgODffB7XguCa97PV2RwTx6gg2fYnBE7UHR7O9f6156RN96EDu1QUPr67kQlj33u91UaicGObmNttKy/luBQDrWqj17RO3QczRZ1+e8No2zwotcA2+B+nHjhxn93aY7eSy+lh/EDFq5djlZpd0ffTYiUrQuPJ+Z9uEz4TVqfSoKp62mnzyLu4JA2fYRRtcffGXKPrQmnqci3KL4Shv2g6n4CL7tbgH6xVBgj5TUkU8ZwWpbHRDhr7w3IqxeII5kyOD49+CK42ucBlWLaM/oCDI3TWx+yzIu8Jf9XkRwm62FfPbIOzN+FfOu5JtYBe6jVxXU74zGNcrt3vLVljHpgWrfmaa/yvIVN+UpjGymCHyadQid2lKplrhO0h3DXxR0tpl54ILbptvmWr45topNYhnBbipNluXmZzfH2bw3urFza8FkZ8SL6SnDll7eSVS3skHqPWs/h0OhtaG9f7Va9BDatK7iz4T3yI6qNRge1/pansL1Fj8ZdcMfyc5+uPz+OnE+Pq3KaH/qvclD76ac5Pw/WgVbPjabPhrmXfIGUennnXDd0gF1QtyXXZApLKm24AG9jZfCYEnq2g9n265cndZ8UzqZGP29Rvduacgl+WiNM/cYziHv578PGbzPV0pwdN9xv+2waPWFdI5XpwgEQaXH/tce/pvz+utQ8PsD+JRCYntHQBhV2hkLLz/zRt42mdtrahMiMaq837KP5sn5O1d9faN7QseqOnxovWZN5PYQ6nxqer4dAkQxd924PtmekCnn6w5arRyRuaGaDLxdwzm5Wserjzx/1MzdgB3UY/EnDivIe++MkfPSiXNf7xuolpNN3Lt3756hvUNEg39UMyepDBSrFJvsMjUKTeLoWKJda0XEh1rbdXgK9Xzyupzk/xp+0/l6b/2T0e9/Yf9lZh74dxJZQmm2JrKI6+BV+WYmDpN8Yb5m3hK9kStNjqlnyvIcTk7ktHy4KqcUg5LkvyUVYmvdFZu/X5MzrfUF+sm3H7ir7PXhZSVH7FIywoquPR2t26jG/qaUmc8cbyfnyeBRaIowK8m/nmqZMBzeGskckaBLt8tVjpOltdv9QHf6k0opxardODF78yffGNk2UqMSDFDUeq6mfmtpRl416HsfEYyy0vykJPhR1cU78FiQQFZ1S3Fx+1HN+8lp9opl/XVWKc91L3U4a8dPfUy4mqRk8eHwQKzDFnPCqxaFfivWwakQSlZN59TcgkiBi9JyLAn9fEi6XF6f4TyCAPv2r9l2b293VnxouREayvT6RB8lNh1paaP8zfHB4TdT8c9zMRvSOvZ7vueyFQy7+nFHRnHcP4xfUvibtxRf7+2L032Myg2KjzCgQuuJ678sfGXKt6W5Q/K01DH1QBPmCJMuphcYqh0nB87KfCoOVR5P1PGuFtprLT6+VunRiTLpA3HDV4cL92Z2EbWSrtbIKh3q/ypj6NVsP46OqnfLofiS39k6kTeeh89lOEuI39OXm3Sg9F3Q7ccnf/S3DU3o+D9N/jtsE7M+YuiO6I3uxLyGHcnXiUPnMo55T13qi+8orbBoz6qtj4+w66jcZ16QTHuhN1tOrReP2PXsxjFqtu+3XlbiIieMBR6n9F7LeLVrX/KRR92b9bXHGxmf3lWfDkg+3cR7qPBcmpStMy2nn1Xaean6E6cD9S0bTOkGBy4K+O4KG9TVZYlSi+d43Z0dW6PId/z1ZsRkn79Gj0a8AL8FB14V3XjQh19esm3/c9s3614ncacMdfbld9g2lvHvsDDff7HM73UvQaLROIZHKpdF2pu/s07L1r/k2V15BiQBUT1WE50+9tl+O3cP8b2dQ2gtYpxln34lfdb6KdUzPhHrdK3iBZS3jn1BR1aZBgYnxFVIu7GGrGcP4C/ddq1Q/VbZp+uKp7/fwVs9Ymo8cICyV6RJ0cT9WM1GXql3Twe2v2FwxW6kiC8U5rb26ViDLxFublE3GJR8u9Ol/BtW+fOI1lZiYuxY0cVT+W1jVXxVnQ8etxzrIOroFmfaCSNYi995vfU/lnULnzOyR9maRqx0qIZ/FO/Ynsu5fuCG8EOJdGKEkeCIMutkq/uo1BQzdUFuEbYtPbuqIjl6cAe2Lb31Zc3lfy6fMtax8kwgjNyXPLQ12+1eJfIr2vMDcUAmNqLSDJdXYLmp9/g3V/PyEdq7eojyWlSaT+dtEV8PqkaVFOlbzztarA0mrOxrDNtzM5SyJvHcAi0ZtVkKd97pIi7mvXBMcLGccgrZdt2lnfdgxkvMQe30rY2aiLMThRrMz/d1V1E+y0BVZB4YtYxoVBzUECor2OWuzzzWFjj6pgj577p/Qo45HX6o7nDVm3Yqru+ACY6QP7GuTfuoyWnvgCiev/136+OyONKEw7l98TJ1W0WUSz0G3gSvKw7yM5rkf9y2qbGE9/ktbL9L84sWm08Vrh5BVxOt3c8mn/JVfKc8lSkkG0i9QyB/tK5vW0/9NY2oNBrkQIvJt2MXnlsgEeuDD78tazjBVrhxx/v3fNfxQzZunnhnqTsvxuQdsxUNknDRke+LJiqCGk1+qAmETqcfp+G9bMLpyyn9NP3ZmGpxf2s7TXFLGntMyR6x6XRmZgpzFk5c1Vetz6/kuL24XE1O6D286RWX4sOW+E9uzmhTyXCTPeoqDV+MG0+bjIcYLp/u2gnJl1hJqV1KzRYZ37RyAvQZD93cfIAJr3qSprORccOH7rS9n3WnC1LO6EVnxWBsxjlYuiaG3WMPPSLY3As9OECbbxpu7PUmzrz7VFX9J+Gs8/hh/SwtXI4OITxIUbnrzNPG2lPfHMb2h3eqo3k9+WLoa09fNzs8IBmJjSOKa9fwhAdk6bAUdofJ5lS1RIQzsCopsBXTNGp0oLHEm43JRdf63/IIDRnUm1xMymHFhZpcOyS9rV4osit3+NYuQauPPDtRr4XzTwwj9ONGizjvZWo60FgFUhy/Z6p/lFiRFyg79epj78ezb6gul7CNCOzDnA22QRdyUO9i6JXtH5GO3OCRK8La9GDU6WEG/cV37mj0iZ4bo7FNJdLHG+tyekGCW6+6CmPFdjsqv1dYGT1rjUcyaG9kxTaVcy9aQi4zRqp6sLiFKbumjR4KaJc+rBnfrIKmdb6evHmPSjJvYfbkziqfdNuBfYyRAzbxCHTt2b2DuQPKMbpMyLrbE/ueTrP/7voN3ArIZALgEvNyzfXZNx+cHdZH4gge8norXlPnUsLPRPXBQTq4GAxRnBHNV93Ik8mw5al5jLN11LRB7ECSgWbx/ojwxKcHwsI9TDsmA4u2++QkE7jsiYY0fEUDqd/ufEnvKboRfkq+kPk9H+I0X2ihv1+n3vAm7f00m/0H6x9UWfj3f/G056N3eJyXIcCQcDh4d81zeZ5E+bJTntd7Hu/91j/FOFcRpu+b6TkAwINle/g/K1pF7+bnayAe63LUGYPHkjNkWNwIZS5SrmVWVoXWTjMU+fVt1Uyrskq7ifJ3c+FRrAgQBABsXvKllRVK5ozxdfX89Tnxz15d+cjAoGxdcXiMIw7rDtefmq6vrVdZhTYz1Kmp3aZdVYVGGqemdRDKJbM9RscY3UZGPJgJdbWS2R9T0/Wr0XfT5hsmQrRvBuQBAFJLiuEhJ8be1RW/hJLKWpT2vAziGIvbYhpMSxS1lv8SRlbDESzGbnENFVp6urMaZns0ktnEo574RXVM+F9o2A4AQP25jtnfcB0EI/yQ99pQpqNmZSLl1VkfCYFGd0NFvawYGBgY5ISuCCnc9eofx2mE/nuXQTk0Zvy2kNwEq1FmWE9PdOPboGvPo02phS4UNgrcfr1fYtPxkA1y2uOiMYaJxtKVHNEe68LDXWKiiUSddTJE4/BLksy7y5pe7pHtSbaLxVyNir1pHdQEUqhScZuOh6CdR4pOUP0usqImaks0AGDiTyex9ComMRmvpMnOG5I5Mr/m9juPVHOSfI5ZIQ+5uUGAz4F5HnGlll2r5CH37FPTa6rQNaJ62nOTsL5SpLzayPjFvbSOPWXdHcL2ncEcn27Rb7vd0RXH/9f8Z3Kq8S7an3NQf8nHw0lOhwvGcTWfJ/kXw5r5IUXGP8+REZlsuH1Ven0zHyrX/gcq6UWoSJ6UjYpvBykV+W7/HNUSJ8YaCg7Kea3QuNQ6QP/775ICf/5cIsFFCgRNNzHDgG7OA5HkfOYxyOeg5hbmj90Ka8DCVBRcADR7tAEmwOv34KVSUaR40KgQBwyPhwIsnV9aqi5mWF2PSKHIlEe+wz2H0bd7DSUglzSCVwNNBHHBqlGFDF8kaUQKBo0CMcDAkubA4JGipQyhghny7RfAKnyQoQLk8kNw6dCcD9wHd8jwRfJDpGDQgA/ch5dzYPCg0Mp9EKMGpKkgODf02xoTjBtLDcingkghoHEcOETpHARp7GeBCkjCBg6hSAPIp3hIIaBxFhYYxL05CDLBnJWjcNGCRTM3K38egb9QVjQvGWHzsuDX0IVxGngJ0OQLfGpOwxHIxWlIwaApFziYNR1YLjqz8tqeQMFgMRm4HGiKBS6Hgh4sF5MhBYPmVeBgriRgZGIwK6+tHgoGC7zA5UAzKZwwORwMYJnACykWNHwCxzpOgrUw07JUZWthlX2AYpGGV0jODUiwBH6qCjGCFYRXSPGgwRE4XsxCPDLhlJUXSc0EFg+fwEVBox7cMFE6C0DIhE9I4aDhDDjc54VwC9MiS21KdLBNKZgZkMt3LH5QsMHUPJ8bTjbfQYoDzVTAcbatBUsEOEhxoEEJVvjlAYZDkscghYHGHuDXs/UsYOmMBSkUNJbADoO6QApFkppY6lHRwx6VIisgG2pY6eXGnxWQCzXAC4FGDOCX+XzIcDKhhqV0MMB07GAD5PMJJHsipGMHt9QXBrAwn0CKBO2UwQ92D16waL9v5Qe7Bh8g7bHBBUBbYPBSAvjAkj22pVxlhbnaB0Va2ECDC4L2r/hggmT5wYobaAtenyAdKR4YahE5VHIdjQX7IKS5BIfU2AJW1tgihYS2cuCQ1eQgyfUpVv5UCAJgqY4QXBm0awNXNk4GZkX+QRs0cEiMIFhZ84cUEtprgUOWk4P8U/84Yf4ZbQXLtmzg8qA9FX6YvOuLYZFr2ZDCQvsncFg6IbDy9szKD2YPCCxkY6Gm+fkHykAZ+LMBQPj5vgL+LwAA//8SjITKQzcAAA=="); err != nil { + panic("add binary content to resource manager failed: " + err.Error()) } -} +} \ No newline at end of file diff --git a/os/gres/testdata/testdata.go b/os/gres/testdata/testdata.go index cc6b69515..87f5cd4ff 100644 --- a/os/gres/testdata/testdata.go +++ b/os/gres/testdata/testdata.go @@ -3,7 +3,7 @@ package testdata import "github.com/gogf/gf/os/gres" func init() { - if err := gres.Add("1f8b08000000000002ffb45a093894db1ffeb24742a1cd2e0619c3104996b21bfb16251a0c11238cbd05a52c49148ab68b225d6b4492aeb2afd9b295a2907d1911a1ff8364bec930e4ef79ee6d7bcefbbee7fd9def7ce77cbf571b414ac60850010070d3f19e3680f3c3026c0660ae4827989b9b1bccda0aea6c8341c13028670cccc2016d65636da04f0e6c6a7e9f68aa8da0a4c21d4818927b1548a8858b33c6c17e55642a60046503421626880c86fef527218c83bddd3c4dd7412b53817275284c45b0543bd540bbb6baa45aa301068335c2542ba125aa82aa50c38e4021358d52c16b9dbadadada2aa5825586c063313178a3e85bd1b7a2197051f1ac7a111d120404c26b1d671e2a6e404206003f7fce89d757106f350400c06a45f1fb88156fef216483b6d950dd7a4bba8f2ee916a6ecbcb4ba6efed574ffdfdcd65e52adbfa4faceebeb96ababdebbaaeaff83cdba4b820d97047ff79197c217fce753b39ba0604b1b2791753c86ec841d98438439bb98afe31184ae8e3af71f74eeaf448430ee98258385346aa1aa5021117d95aaea7daa95fb36fd7628efe98d833b00006058919a7315ea79ca25bae5a9fc496567b7030040bbfe62c037bc18f0ff4b31e0a062c0972f86ee1f0e7985b091fe6d31e0f3bf85838bf12795866c7af1df14c346e4009a8862e06b675b11106a69e3f45b38f115e6226cc8222a0c85ded822e300c34ea1ecec1cc07b7047994a6569e9d15403ed5140e426b069d176a73e5b0b460000e83782d7cdc1c9ce128f57a01a56a6aa936aa04d4d89cb7b97c10582cfbb3e236d91ff27236d91bf8cf440fe616496aeb6e7fb03938e755f8a839fb04b089d7d9f6dba997e7172b95602c61c0000ecda080d0ba68234cc7b9aa6abed996ed1827d2cade60d2c32df3b6c66c70c0000dd5fdbeae4b20e5b058902fe652bee1bf7f7eacc11fe69fec68f7587f88926cf34d5254bedce72f2b10200c0bc11fc0b9682def88bab3427b5fbf5b5205a1c4b517d032f76acba52798860f63c0595d7dcd8a32e18fb97b1b6ce0ee8df334bec9a3ba4682f189c3eb766dcf2eb1e7a8567db6efafd30e671d2e4acbe5e8997b1e0ef7232167c4e5f5aba26994b4e530f2066f165acdb69fda3eb701a462cf62fa7dd711ecaf4b494924a1d3e0454a0aaa2faa901bc5e545b57a51251a5555a81c8321080aad6656aa7677d4e2f15cb2879fa79ce8dd4d2f9adc46ba122f6639c8784f69c4ba596fb6d08bd2773881600005a1b247aa12e7f299a7f7ef3f15aa89ff8143d5b64b08c1139c7a2e6295ef5704d3ccd6b3903cd4bb6b2b143ada37c7cab3831070b43a1577a33669761839c74e5a6cfd0cb2f6d3e166e503976000038fe9edd1649eceb24e0c9a1577c9042b5c33da5d76caae3c7f936912cea612c2a371299bf8eada407428c1e271762f6e1052de482b9f89be36b5dd88ce03cd73aafbb4b4ae6b78e65368d3f762e8c9c6fe7a4a224ffc97cd6ba7b5a033a1d89e4bf4f9132dab06742f32f8295f40810a947ffe8863fe1feea1ee77534033fdc98d79e56736538db6e2cdf73692f2e952bab43020060b3e20cb8579ec1ff6f91af466c8b24444c608193efc55a166774eb79e11c0e75ac395c45e6d7cddf487172212485c8c56d7120e73474fec15e4906ef2a3216d63548c992278b2fe3f982fc4722f548fa7e4b2c19d5a2829eb6b2609ef91bd65f2ad03fba810ad6722d737270c06cec1d790e1166e1ecbc8ef703ffeaa830678c871d4a68117fceab5add84f9c38b4a79f5be1a68d5bf6a99bac2e20209a9143411718637bff276593eea36e6df1bdf151ec76cecdc40f27b9b166833efdd0f00007cc5a972ae22cac61e69bd9e97a10031b8303b076b07a13368ebdfb3b58bf438507f7a4f713c3c3c80eb60c4db5b0ac656159776ca2385c7ed4b74c5ac4a4b04ad78bd9a8b9db4b7373f652c0ddb7f5c9feb9224633acf8f308b32d7b08777269c34873caa5ddab0268dd8e2a1d973b2131379293f66bb03d29e893193a9fa0280f783cd14f6340040ff62e2d37900e07096c92101807e64cbee3e52b5170fe78ef8b2ac9f0bc880ad01fd6dd2de63ea8ec04907fe5d7d254e19c2ca1d368c7cd7e49c214766f830ff0d1e9ee49ce1c35087fa91fed0c94d508fbbbff50b1d795899c2e06524fd30fbb677fb59fd63fdf637791771f836fc63ab6de02f44b585227627d9b65a66fb31526b7a9583f474cc41d72ee59f3d77ee9f3ceb7fc48a0c769a2010348f02bd39e905b690a8faf568a1daa7f5132a6e5ce09d7460130b0db0bede23080fa66e9b297a5e97fc14c3719d3d4ab63ae420ffd8abab0915ec27da6d186fb15fdb7a51de00f9938261f882c858df96145935ee4f480518979f0a4a0479866fda4c92f9b6c2945bd607d90b2d3db321f2933a5f554829188ab9621c0563848e30253f8c494c8e49f4f1e3be6ecda0929d234a3d4e57f3aa5d8c2242095bdbd09a49ba27749782d9eecfbbb7db9d8c1f9798bef2953d973c588e77f2e7fd9707754f907a1862afcc7c54b8f066b3fbde80a2079f8c722ca907051894e24d15f367774c473b6579c5315d548f4b3ff342bece2ff6e4cf1d3f86bc913f6f0ddfef23fd91269bc3c1d89f72a29e1cfa626c881490cbe73d25fd2fe5f08d581a5a293ec749816f02998fcec96619981c3e7bec2b9ff6c76b5a22fde3dc5e2f4cb9f5bcfcf36676fd9885184ac87404b928a6f929db3da3bb7a48e251c1e5c35c21be10e9a1f2725eaaef46b72e3ee99b1cf631957efa3e83bcdb3e39e2aa772e4f5b7f85ede8418981cb75ee03d8098ba3882aebc048f5af9e5fd0572e754798dd32bed307b4e98e735bf247d248a6305c3e1f697421cf97b3be24b2d158f689b1b001d39ef75ee6c3132ee6d70b246ebdbf49259df315bb4b8092e666a6d86eb46a4ec63d761679a91a6f7b3f3677aa9a6157075e144d725fc14974742949633386a3131a73b4a957d7af31eecd6dff2de517b96e67f50b70bfcb65154c662874bc181a780dae06a1758f67aac7682807410b15a9ee04e81bbe6cf26439362836e0db41ef2aa3fc414956503d497fb6b2e65ab6027abb8fd655247762674d1d8bd59353151616de861eba3c35fc59e4ba1daf1464223e2ac3dfcc58f98d57b5ec64e0c7988dd19dd2eea07a595ef122f64be84fc46e35279f0b5a81baa38f28769ed88f6116727dd2db1de2c7a2c15df7251c8d551de6cff8f1ade69d73d883671133bb1455be5df5a73bf2b4c751b67a6a9869a7ce5e4afae76510a84db5fc9b97e4d6bd67e2d5ddafa952d849becdd272e3aa9dd47d9132d8a37f90c5e85be909e4b08943b7ad49d2d3f137637cf9db827268295fbce1dd243f202b79c964f6bf3791b721308b81f4f11d279af4b78f6c8a66290b322abcdd8efaa42f3886697f9c8b783be2d32b2272ea4b8a9ffc5e6b485093db6e88c95bc8a9145134c71174617495edb05c3ee565356eda8629d6f774935ca7ad94207eed16461219631f0c38640dbbe3efa324779e89925478341e592f7e98f39b054ddc33b981cb0da74b72a4f6644b8eb192f8bc4e3345243697cbc76e13764272e4fb5e69a41dbaeeb8e7a1a18a47a6855483408a9fa36c8371a9e115d648f38f3af70eeecd9dee0a7e3b3ba3dddccf360deb91d14a7c62e6696d1a501dd07fbacda837bd5d250a7339a8576c5cbe4efb9ccab7d204e6f798e9d07b5ed0eddb4f963edd26c8ceae521ee645ae143ff261c656dcebb3899ff12b83d933816e45ad90724fb798bbc6d6b0f3821edbb9b704c655e73edb6cee2a395c94b8f5d395f6db51b3caadc5d3b1613faad41f17fbdf940853bcfc84fa2af469ce47ffe1a7ecc5e9364e079eb69fe4afbc9eccd874313d9d5bfa95d79d17cf335bbe8df87d3c8e49c8c376747a0792255d3672f534ac676b177db8a93a260429c7f63de34cb6b8975dc5b756f5f36a269541233b94ab42f6fb93e7906f663fc0851570528f1c10ebf59fb1bb6badd2c6189215a04ccdd63d9a99a572aef254c1cbc69d75a8610d3a2feca8a484dbc1707157b548a71d1e3ef29919582525a523234a2358ad7fe552a7c9b4a42aa41a2c5315f3f422a9e8c21caaf90447da3ad458f234dcb3bb6d254e8fb676b528d5fe37fee334ea392dedd0f3696811a9c1a6907ce61351128d5b18f57278d91bd98a34c66e37d8245e2ec9b6be3095d9fc294a5c3a1c26ccf140c4dfc2ac3b22e798325352db5bc47fdf7fa2a3b6d70695149db24c4809ccbff37abc66b7fcf6d6625a76438ca5b80bb5739e3ec4a028e76ea271cc68505b086d708c3ad521077126bab61ea7e33dc9ff958b48551c460b5819fef79d866137392c460b46aee1a0efb99562aca94ed3ed1477a889f21769eecf72f66e3e677db9d22a9b0b0b3bce283f8d4fb2922a19ac31492850bfd969a71a3df339262a4edae8d3c9a1086b4ec3f4a666c94113fae1197f527a65bbc4acdc10ae1b7071ba9841762855169bfb68763ad7f6fddf322cdf3fec2afbd47c2f20604bcbf901525432d4d85ce6bbcdb393ad33d10559c85d499dc75c3e325b7007467d3e905218f92f4d5f02472367e1ddfe8148f557b02cdfe8602d328486a0e6bbbc267d76cec64ee14b2267157cf46883f5bab7bc45921db8307445f44b6180cc64ac9a5b258f9299e0e456e997e74be0c72347a346f39452bbb12a71515562d2a683df44b55d1bad2611a1b58e99247d395d6d53d993d9982cea2be9d14706b2e28e177ff07df8eac2cfc1f6912935afd7f1ff04eea1d5848c3ce2bfd7139b5d7720fe2e76e46aca59b7999b03d19dc565461d69d5b5d1c1969de5470d73e329aff76788cbf7632087dedc3b4bcef0e3c1bb7274c8942ed7ab84fe3b294d878ec69f7ad9c3aaa93a594ff3fab1c2ac77fca50636d3bcab49221676944c9e2649d7446acf5ff2d134aed3a71a1ebac1e5712870585d9d2e543e9ab1a52723a24a8afd5c0b2b647ac04bb157319a8bc388112387a83fe1ce2121dc7eacc0a2755b4bdcce8491ae819c4e8bfa128e034686c76e9478b6f4a70bd5eb86b38864d1c1dd38ba6a542cbc8ade3c96a086a6432a27aac29227be5aeddfd98bfd68691d500d99a43baa59be396dc78cdc65f7e06dea26d15c327b27fa102115fa3e7e31916570477aff1ddbbd398af7ddc9537850f2e5aed4a51f8f30262fb7d41f3f4edacfd720a5e774b66a379bc887d743fb5ba91d50bb49a2f378779ab9776ec214f136362b680d0bbf3f685ffa1d25f3754c652f36366222ffc6c59cf6890af68aae67af9acf7662d5d40b532d7921f4851f5cdf7b9d4d7b80c91c3b22634621503c52c5318eb1e9c862da31748ff78550323658877b4c867ebacd695c6486963c372b1fd59e9c5151161f367c00d59edcf6aeead6bfb72eeaaa99b8c4a48f3d1536dd9be1f8a41cfa0de1f2093b241a115c6e80cece35ded37feebb8361e918e5630d4869352cc9bdeb219f873359bd6c02fc414167b399d6948955957647568a74da34662757734a759ae4a30fea901bd96f6d62ec8d676cfdf7ddb5ef603b91f20e794235796fbd32e4ca549e226dc1d19e0ad23729b0b2d4e3e3c6c1f552c38a3c25b9879c346927da7dc65bf3a1cfb7fdeb7fd6f6e40b05eb2837ca99c881e37ae8f49ca96dedaa67f42eb97987b2fce37558139dc698c41bb4d303235ab3974fa6d879a8d56f5ba1afa7ce34c7abf63df5456c050f5083f68d6f9bcdbf943938fb46c59a395d89bfe821f54166269547cc87fc0057ce78cdc0bededa3b8aa14914d0a166bdef67af171841213bfc4ebe2fa93bcf90b7fbc0c78fec773123e68e2e183b91476f27246c32a4b4e2d061211ff3a7ca7cebf57eca7305cc269fa360bba5c7e4c1047f9dfc6642ae70b0ad83a2b039697b78d11181d9645a5a12433a2674c53795af4de23b5d991df4ce6bbcb8ef1a99e0ce10fb6f56e67843d16883152c8a823ddc91a55dd459009d4375e7bcf03b94b0c821e946a394ef2a99de9a34a6f7598f6fc1c85da0e8aaa7d9f5a92749e9abfa6c6ec2658db0b470a4f924235df7d4a85384e9cb74f3270127862873f483745d5b230d7b2e56d47ee14dbb8619d54c534167aaa507f94ac9745f7e5d5f7df1bbf5c4b1a02e05049b0b7bf8e6ea4b770d4e0e0987a022b182aa552c41de696a74793d81629915cdc141d4f4d2920c8514f58a9d0814f67e7d7cfe9dc1f72c3c235ab57a37e232e9d1017a774ce1fb6a7942bab3461f1ce236f9cc7210d6c29b737e14a219399ecff42455d99ac2c487e4dc137dcd33d8b26c1fb199a6cffd9fafb492dd2a6218e33a8abce2678ec863243f44dd2f3638060fd9e59cc547dff06cdcf645cae61b1f9c1088f3bdf7c6231a8ae0e7ea6b32fb8118c77e05599ab2fd96649e4d28510d33c597a2083768d93ed9ab6f9bfd6fd184c839d33906ca38248d9b7a77c04f2a4737ca2228edeec6b31e918d67cbcb983e58e19e6c3174942664c83c1a82a8bea2349c352413aebe055af370eae8ebd9edbf9b03430fbc53b700c04dda755e93172e44684b94bbd0290cce3559b0aac6be88630bd9276bb85f21304272993f476e374b2a35e76bc3703bb3d059ad88a1382de5c263c141b1af8f070639eb774efbe4ef77cf8c4f67b6c26a53b0e70f257e7fd497dc9b7f2fe8a2441eed4776c825f6803c2fcf2e8dd13daac72858bd866b9f5518790df6b958b16fb67e959dc2451d73d2ef705581044bac44c94597bbbdaf94be0fced02c4e1439f05dff2a0000cf56bc5112ee696250f667ec90980dbe4e2ea22ee7e0a8a00ecc90af54c5a0a402a19aa4cdf72b4361a0525ea1da40fafbbbddcb083e801b0000d61527062142831dd2c3c10523b28e198a138f0eb3704063903668941378b689c99aaa1ae51508036db5aaea7daa151508a86e6252677aa97086f3f8048de3d898336d7a4db570c6e7c464cd4ac4e3a4a52f973c94ad4312000088aca851740d1aad1c1c302b082caf86a92ea9c34ed0391292a65f24a5b2fae7b8b5483b85425a129656a6a2a1be206de11baa7006f68c0b86a0bc29afeb75fbe7fb201b256fe157b0bc741dcc88dbd6802d670c4af84a2bd33ea7fbe83c0ee07735a1a6a6a616e7b9cd23f9d8757012ad18f0fc31b54c40f8e4431ef1297a9dd4c0dedeb0faf7be770ac2f4c979aee7d5733d6c3926b4e79cff2e71d549fe70ed585d78396398f3b6a020fbf0302c566d9b285637e8a630ede192867747c47ae32d239051a111f7cd7c1b8004b244f49e73fe08bbb1fcf364bfe75e5615ca190600c0d4063d37f0753c37c43b0b5f764de2adbfa54de198dd5825135e33fbefe8975b77e9e0f5b5442f28dd7c6863e9975b5789c95515882a7e0dd5c5755f5bce575aa9a3fbf64952e791929e4e5eab2e3fc62f0f36ef7bd8d91dc9717a29304336d94d39b7ec35572cbde01ae4d9236dd6134a915823c5fcff44962982cbd8986806b806151a03f3f194ad1baf004e4001de2a3097f5e8042b98fb91f705dbcc4c50c13c81ecd49ca18b35c21fcc446830ce58421fcef1b1e897c15a070c150ecc3a8693fd1abecad0e59cdc34371467dc26124652c271e5c5490f1c9eef8413175e260cc90d82d45b05f2cff0f222f2c212c5cd020bff460680389f2482c8448497f16970a3bbfb4034b69b8075c58cf1197063b6fc20062e12601d81607c7cdc54ec5e107ed3aaf804a52fdfa55aaa6e0029405cc89630203b08b08520e072215bb003b8a95728c8016132609d215b7c0edcb82b2788e3c92a1ce0342df116339303c4456789b5d89a1c584374163c7ddc2c2bd8e297aba31288cee273e08658c1161fa000d6909125dee25882b87881d825c0e522b04b80632b02e2056209abe40281aa52026b0bc4826dc50da9824b174314f07281587c0edc402a98633715b0cef02bf1068511c1010aba82c5e3064ec1e2fb88025e2ee88acf811b2d0573386c06d6196425dea01e2238409155b078dcf8a82048fc116a607d91557c0adc9c2898e23571147fa65257b2870764cf211a60cdf153bc37104e06147c58b9452cf672f1537c1adc8c2798867d0bb0fe7829f14e3d228e06141f054f01379509034d81841658777c149f0537470966c9229ae5cfbc27f1afdad35b81352434c1da71a3647c20edf95b81b52734f1e171e38f6078593a60ed114c7c78dc4c2304045f4d0c3c5ea2121f1d37a1083ead1bd303eb4a49e233e0260805400c3d4432e0e51e572a2f37f820c900ac2996888f8c1bfc0323efdd06ac2977f887669c2c1f1839651564fc18213e326e428e17842cbe1d586b329078f0ecd5c1f1437fc49f2a0f3202c4e5f988dd4d8208022e97e7037b801ba303df3edb57475d26cfb7926a4e906a5726604dd13cbc33074e570afc1c561183fb67340f9f00b71b045e1c1fb980b5b6ba5672057c4328e106886f2f8115e3b679c096b0ee05d6d35e5a493504a4fa1f2208feec1d81e5e3f668c441f27f128f4ea877f4c7d7239cae8b28882c9607f8ab26d01f470d9c060a98498617f8ab9e0e3e136ebb02ccf4610d4ccb7d46277e21344380753443c0f3c0ed4c80e721c107fc5533049f09b70901667ab60626626a83db4f0033ede707feaac5b1526d0441b5a95f03135eb7023c19dcbe8104b84002c05f772bf0d9707b0460b6e7eb61832fcf46a8efb068dfcfc352fb80d5bb104bb558ae0fb104e64e088c282c7a1056c1325844c1508160680481e5ba128487938186abfd1afec750427d88a5a17e734371c69153ccfd8b02a00044ec0480a4b9c33cf0bf000000ffffd3531d4259450000"); err != nil { - panic(err) + if err := gres.Add("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"); err != nil { + panic("add binary content to resource manager failed: " + err.Error()) } -} +} \ No newline at end of file