[{"data":1,"prerenderedAt":3026},["Reactive",2],{"currentDoc":3,"content-query-Jt2CVeDtlE":1648},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"labels":10,"category":12,"author":15,"coverImage":20,"datetime":21,"date":22,"readingTime":23,"body":28,"_type":1643,"_id":1644,"_source":1645,"_file":1646,"_extension":1647},"/resources/tutorials/enable-gitea-actions-cache-to-accelerate-cicd","tutorials",false,"","Enable Gitea Actions Cache to Accelerate CI/CD","Caching is a vital aspect of modern computer science to enhance performance",[11],"actions",{"title":13,"href":14},"CI/CD","/resources/tutorials?category=cicd",{"name":16,"href":17,"imageUrl":18,"role":19},"Nanguan Lin","https://github.com/lng2020","https://github.com/lng2020.png","author","/img/tutorials/enable-gitea-actions-cache-to-accelerate-cicd/cover.jpg","2023-10-26 12:00:00","2023-10-26",{"text":24,"minutes":25,"time":26,"words":27},"4 min read",3.12,187200,624,{"type":29,"children":30,"toc":1636},"root",[31,40,46,73,96,102,121,155,160,244,256,365,376,386,392,403,407,823,835,842,891,897,902,914,928,1561,1566,1574,1582,1588,1600,1620,1625,1630],{"type":32,"tag":33,"props":34,"children":36},"element","h2",{"id":35},"introduction",[37],{"type":38,"value":39},"text","Introduction",{"type":32,"tag":41,"props":42,"children":43},"p",{},[44],{"type":38,"value":45},"Caching is a vital aspect of modern computer science. Today, we will discuss enabling Gitea Actions(Gitea's built-in CI/CD) cache to speed up CI/CD.",{"type":32,"tag":41,"props":47,"children":48},{},[49,51,57,59,64,66,71],{"type":38,"value":50},"Gitea Actions utilizes two types of caches. The first is the Runner Tool Cache, created when launching a runner. This runner creates a volume named ",{"type":32,"tag":52,"props":53,"children":54},"code",{"className":7},[55],{"type":38,"value":56},"act-toolcache",{"type":38,"value":58},", which is mounted to the local file system(usually ",{"type":32,"tag":52,"props":60,"children":61},{"className":7},[62],{"type":38,"value":63},"/opt/hostedtoolcache",{"type":38,"value":65},"). When an action like ",{"type":32,"tag":52,"props":67,"children":68},{"className":7},[69],{"type":38,"value":70},"setup-go",{"type":38,"value":72}," is used, it downloads and installs a version of Go, storing it in this special volume, thus preventing redundant downloads of dependencies.",{"type":32,"tag":41,"props":74,"children":75},{},[76,78,83,85,94],{"type":38,"value":77},"The second type is more fine-grained. Originating from GitHub Actions but compatible with Gitea Actions, it's called ",{"type":32,"tag":52,"props":79,"children":80},{"className":7},[81],{"type":38,"value":82},"action/cache",{"type":38,"value":84},". This action uses a hash key to retrieve the specific cache. For more specific information and detailed configuration about this action, refer to this ",{"type":32,"tag":86,"props":87,"children":91},"a",{"href":88,"rel":89},"https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows",[90],"external",[92],{"type":38,"value":93},"GitHub Official Doc",{"type":38,"value":95},". In this tutorial, we will enable both types of caches to accelerate CI/CD.",{"type":32,"tag":33,"props":97,"children":99},{"id":98},"use-runner-tool-cache",[100],{"type":38,"value":101},"Use Runner Tool Cache",{"type":32,"tag":41,"props":103,"children":104},{},[105,107,112,114,119],{"type":38,"value":106},"The process is straightforward. Just add an ",{"type":32,"tag":52,"props":108,"children":109},{"className":7},[110],{"type":38,"value":111},"env",{"type":38,"value":113}," variable called ",{"type":32,"tag":52,"props":115,"children":116},{"className":7},[117],{"type":38,"value":118},"RUNNER_TOOL_CACHE",{"type":38,"value":120}," in your Gitea action workflow, and the Gitea runner will automatically detect this environment and store the download cache there.",{"type":32,"tag":41,"props":122,"children":123},{},[124,130,132,137,139,146,148,153],{"type":32,"tag":125,"props":126,"children":127},"strong",{},[128],{"type":38,"value":129},"Notice",{"type":38,"value":131},": For now, ",{"type":32,"tag":52,"props":133,"children":134},{"className":7},[135],{"type":38,"value":136},"/toolcache",{"type":38,"value":138}," is ",{"type":32,"tag":86,"props":140,"children":143},{"href":141,"rel":142},"https://github.com/nektos/act/blob/4fae81efe4cdd9e09e7ef8e874a2d63b1ed98524/pkg/runner/run_context.go#L137-L139",[90],[144],{"type":38,"value":145},"hardcoded",{"type":38,"value":147}," in the upstream project ",{"type":32,"tag":52,"props":149,"children":150},{"className":7},[151],{"type":38,"value":152},"nektos/act",{"type":38,"value":154},". So it cannot be changed.",{"type":32,"tag":41,"props":156,"children":157},{},[158],{"type":38,"value":159},"An example configuration:",{"type":32,"tag":161,"props":162,"children":166},"pre",{"className":163,"code":164,"language":165,"meta":7,"style":7},"language-yaml shiki shiki-themes github-dark","jobs:\n  build:\n    env:\n      RUNNER_TOOL_CACHE: /toolcache\n...\n","yaml",[167],{"type":32,"tag":52,"props":168,"children":169},{"__ignoreMap":7},[170,188,201,214,234],{"type":32,"tag":171,"props":172,"children":175},"span",{"class":173,"line":174},"line",1,[176,182],{"type":32,"tag":171,"props":177,"children":179},{"style":178},"--shiki-default:#85E89D",[180],{"type":38,"value":181},"jobs",{"type":32,"tag":171,"props":183,"children":185},{"style":184},"--shiki-default:#E1E4E8",[186],{"type":38,"value":187},":\n",{"type":32,"tag":171,"props":189,"children":191},{"class":173,"line":190},2,[192,197],{"type":32,"tag":171,"props":193,"children":194},{"style":178},[195],{"type":38,"value":196},"  build",{"type":32,"tag":171,"props":198,"children":199},{"style":184},[200],{"type":38,"value":187},{"type":32,"tag":171,"props":202,"children":204},{"class":173,"line":203},3,[205,210],{"type":32,"tag":171,"props":206,"children":207},{"style":178},[208],{"type":38,"value":209},"    env",{"type":32,"tag":171,"props":211,"children":212},{"style":184},[213],{"type":38,"value":187},{"type":32,"tag":171,"props":215,"children":217},{"class":173,"line":216},4,[218,223,228],{"type":32,"tag":171,"props":219,"children":220},{"style":178},[221],{"type":38,"value":222},"      RUNNER_TOOL_CACHE",{"type":32,"tag":171,"props":224,"children":225},{"style":184},[226],{"type":38,"value":227},": ",{"type":32,"tag":171,"props":229,"children":231},{"style":230},"--shiki-default:#9ECBFF",[232],{"type":38,"value":233},"/toolcache\n",{"type":32,"tag":171,"props":235,"children":237},{"class":173,"line":236},5,[238],{"type":32,"tag":171,"props":239,"children":241},{"style":240},"--shiki-default:#B392F0",[242],{"type":38,"value":243},"...\n",{"type":32,"tag":41,"props":245,"children":246},{},[247,249,254],{"type":38,"value":248},"Alternatively, you can use ",{"type":32,"tag":52,"props":250,"children":251},{"className":7},[252],{"type":38,"value":253},"Docker Volume",{"type":38,"value":255}," to specifically mount the cache volume:",{"type":32,"tag":161,"props":257,"children":259},{"className":163,"code":258,"language":165,"meta":7,"style":7},"jobs:\n  build:\n    runs-on: ubuntu-latest\n    container: \n      image: your_docker_image\n      volumes:\n        - your_docker_volumn:/opt/hostedtoolcache # this is where Runner store their cache default\n",[260],{"type":32,"tag":52,"props":261,"children":262},{"__ignoreMap":7},[263,274,285,302,315,332,345],{"type":32,"tag":171,"props":264,"children":265},{"class":173,"line":174},[266,270],{"type":32,"tag":171,"props":267,"children":268},{"style":178},[269],{"type":38,"value":181},{"type":32,"tag":171,"props":271,"children":272},{"style":184},[273],{"type":38,"value":187},{"type":32,"tag":171,"props":275,"children":276},{"class":173,"line":190},[277,281],{"type":32,"tag":171,"props":278,"children":279},{"style":178},[280],{"type":38,"value":196},{"type":32,"tag":171,"props":282,"children":283},{"style":184},[284],{"type":38,"value":187},{"type":32,"tag":171,"props":286,"children":287},{"class":173,"line":203},[288,293,297],{"type":32,"tag":171,"props":289,"children":290},{"style":178},[291],{"type":38,"value":292},"    runs-on",{"type":32,"tag":171,"props":294,"children":295},{"style":184},[296],{"type":38,"value":227},{"type":32,"tag":171,"props":298,"children":299},{"style":230},[300],{"type":38,"value":301},"ubuntu-latest\n",{"type":32,"tag":171,"props":303,"children":304},{"class":173,"line":216},[305,310],{"type":32,"tag":171,"props":306,"children":307},{"style":178},[308],{"type":38,"value":309},"    container",{"type":32,"tag":171,"props":311,"children":312},{"style":184},[313],{"type":38,"value":314},": \n",{"type":32,"tag":171,"props":316,"children":317},{"class":173,"line":236},[318,323,327],{"type":32,"tag":171,"props":319,"children":320},{"style":178},[321],{"type":38,"value":322},"      image",{"type":32,"tag":171,"props":324,"children":325},{"style":184},[326],{"type":38,"value":227},{"type":32,"tag":171,"props":328,"children":329},{"style":230},[330],{"type":38,"value":331},"your_docker_image\n",{"type":32,"tag":171,"props":333,"children":335},{"class":173,"line":334},6,[336,341],{"type":32,"tag":171,"props":337,"children":338},{"style":178},[339],{"type":38,"value":340},"      volumes",{"type":32,"tag":171,"props":342,"children":343},{"style":184},[344],{"type":38,"value":187},{"type":32,"tag":171,"props":346,"children":348},{"class":173,"line":347},7,[349,354,359],{"type":32,"tag":171,"props":350,"children":351},{"style":184},[352],{"type":38,"value":353},"        - ",{"type":32,"tag":171,"props":355,"children":356},{"style":230},[357],{"type":38,"value":358},"your_docker_volumn:/opt/hostedtoolcache",{"type":32,"tag":171,"props":360,"children":362},{"style":361},"--shiki-default:#6A737D",[363],{"type":38,"value":364}," # this is where Runner store their cache default\n",{"type":32,"tag":41,"props":366,"children":367},{},[368,370],{"type":38,"value":369},"download time before:\n",{"type":32,"tag":371,"props":372,"children":375},"img",{"alt":373,"src":374},"download_before","/img/tutorials/enable-gitea-actions-cache-to-accelerate-cicd/download_before.png",[],{"type":32,"tag":41,"props":377,"children":378},{},[379,381],{"type":38,"value":380},"download time after:\n",{"type":32,"tag":371,"props":382,"children":385},{"alt":383,"src":384},"download_after","/img/tutorials/enable-gitea-actions-cache-to-accelerate-cicd/download_after.png",[],{"type":32,"tag":33,"props":387,"children":389},{"id":388},"use-cache-action",[390],{"type":38,"value":391},"Use Cache Action",{"type":32,"tag":41,"props":393,"children":394},{},[395,397,401],{"type":38,"value":396},"The Runner uses a cache server to store the key/value pair cache. The cache server is enabled by default. So You can directly use the ",{"type":32,"tag":52,"props":398,"children":399},{"className":7},[400],{"type":38,"value":82},{"type":38,"value":402},".",{"type":32,"tag":41,"props":404,"children":405},{},[406],{"type":38,"value":159},{"type":32,"tag":161,"props":408,"children":410},{"className":163,"code":409,"language":165,"meta":7,"style":7},"name: Caching with Go\non: push\njobs:\n  Cache-Go:\n    name: Cache Go\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v3\n      - uses: actions/setup-go@v3\n        with:\n          go-version: '>=1.20.1'\n      - uses: https://gitea.com/actions/go-hashfiles@v0.0.1\n        id: hash-go\n        with:\n          patterns: |\n            go.mod\n            go.sum                                    \n      - name: cache go\n        id: cache-go\n        uses: actions/cache@v3\n        with: # Specify with your cache path\n          path: |\n            /your_cache_path                                    \n          key: go_path-${{ steps.hash-go.outputs.hash }}\n          restore-keys: |-\n            go_cache-${{ steps.hash-go.outputs.hash }} \n",[411],{"type":32,"tag":52,"props":412,"children":413},{"__ignoreMap":7},[414,431,449,460,472,489,504,516,539,560,573,591,612,630,642,661,670,679,700,717,735,752,769,778,796,814],{"type":32,"tag":171,"props":415,"children":416},{"class":173,"line":174},[417,422,426],{"type":32,"tag":171,"props":418,"children":419},{"style":178},[420],{"type":38,"value":421},"name",{"type":32,"tag":171,"props":423,"children":424},{"style":184},[425],{"type":38,"value":227},{"type":32,"tag":171,"props":427,"children":428},{"style":230},[429],{"type":38,"value":430},"Caching with Go\n",{"type":32,"tag":171,"props":432,"children":433},{"class":173,"line":190},[434,440,444],{"type":32,"tag":171,"props":435,"children":437},{"style":436},"--shiki-default:#79B8FF",[438],{"type":38,"value":439},"on",{"type":32,"tag":171,"props":441,"children":442},{"style":184},[443],{"type":38,"value":227},{"type":32,"tag":171,"props":445,"children":446},{"style":230},[447],{"type":38,"value":448},"push\n",{"type":32,"tag":171,"props":450,"children":451},{"class":173,"line":203},[452,456],{"type":32,"tag":171,"props":453,"children":454},{"style":178},[455],{"type":38,"value":181},{"type":32,"tag":171,"props":457,"children":458},{"style":184},[459],{"type":38,"value":187},{"type":32,"tag":171,"props":461,"children":462},{"class":173,"line":216},[463,468],{"type":32,"tag":171,"props":464,"children":465},{"style":178},[466],{"type":38,"value":467},"  Cache-Go",{"type":32,"tag":171,"props":469,"children":470},{"style":184},[471],{"type":38,"value":187},{"type":32,"tag":171,"props":473,"children":474},{"class":173,"line":236},[475,480,484],{"type":32,"tag":171,"props":476,"children":477},{"style":178},[478],{"type":38,"value":479},"    name",{"type":32,"tag":171,"props":481,"children":482},{"style":184},[483],{"type":38,"value":227},{"type":32,"tag":171,"props":485,"children":486},{"style":230},[487],{"type":38,"value":488},"Cache Go\n",{"type":32,"tag":171,"props":490,"children":491},{"class":173,"line":334},[492,496,500],{"type":32,"tag":171,"props":493,"children":494},{"style":178},[495],{"type":38,"value":292},{"type":32,"tag":171,"props":497,"children":498},{"style":184},[499],{"type":38,"value":227},{"type":32,"tag":171,"props":501,"children":502},{"style":230},[503],{"type":38,"value":301},{"type":32,"tag":171,"props":505,"children":506},{"class":173,"line":347},[507,512],{"type":32,"tag":171,"props":508,"children":509},{"style":178},[510],{"type":38,"value":511},"    steps",{"type":32,"tag":171,"props":513,"children":514},{"style":184},[515],{"type":38,"value":187},{"type":32,"tag":171,"props":517,"children":519},{"class":173,"line":518},8,[520,525,530,534],{"type":32,"tag":171,"props":521,"children":522},{"style":184},[523],{"type":38,"value":524},"      - ",{"type":32,"tag":171,"props":526,"children":527},{"style":178},[528],{"type":38,"value":529},"uses",{"type":32,"tag":171,"props":531,"children":532},{"style":184},[533],{"type":38,"value":227},{"type":32,"tag":171,"props":535,"children":536},{"style":230},[537],{"type":38,"value":538},"actions/checkout@v3\n",{"type":32,"tag":171,"props":540,"children":542},{"class":173,"line":541},9,[543,547,551,555],{"type":32,"tag":171,"props":544,"children":545},{"style":184},[546],{"type":38,"value":524},{"type":32,"tag":171,"props":548,"children":549},{"style":178},[550],{"type":38,"value":529},{"type":32,"tag":171,"props":552,"children":553},{"style":184},[554],{"type":38,"value":227},{"type":32,"tag":171,"props":556,"children":557},{"style":230},[558],{"type":38,"value":559},"actions/setup-go@v3\n",{"type":32,"tag":171,"props":561,"children":563},{"class":173,"line":562},10,[564,569],{"type":32,"tag":171,"props":565,"children":566},{"style":178},[567],{"type":38,"value":568},"        with",{"type":32,"tag":171,"props":570,"children":571},{"style":184},[572],{"type":38,"value":187},{"type":32,"tag":171,"props":574,"children":576},{"class":173,"line":575},11,[577,582,586],{"type":32,"tag":171,"props":578,"children":579},{"style":178},[580],{"type":38,"value":581},"          go-version",{"type":32,"tag":171,"props":583,"children":584},{"style":184},[585],{"type":38,"value":227},{"type":32,"tag":171,"props":587,"children":588},{"style":230},[589],{"type":38,"value":590},"'>=1.20.1'\n",{"type":32,"tag":171,"props":592,"children":594},{"class":173,"line":593},12,[595,599,603,607],{"type":32,"tag":171,"props":596,"children":597},{"style":184},[598],{"type":38,"value":524},{"type":32,"tag":171,"props":600,"children":601},{"style":178},[602],{"type":38,"value":529},{"type":32,"tag":171,"props":604,"children":605},{"style":184},[606],{"type":38,"value":227},{"type":32,"tag":171,"props":608,"children":609},{"style":230},[610],{"type":38,"value":611},"https://gitea.com/actions/go-hashfiles@v0.0.1\n",{"type":32,"tag":171,"props":613,"children":615},{"class":173,"line":614},13,[616,621,625],{"type":32,"tag":171,"props":617,"children":618},{"style":178},[619],{"type":38,"value":620},"        id",{"type":32,"tag":171,"props":622,"children":623},{"style":184},[624],{"type":38,"value":227},{"type":32,"tag":171,"props":626,"children":627},{"style":230},[628],{"type":38,"value":629},"hash-go\n",{"type":32,"tag":171,"props":631,"children":633},{"class":173,"line":632},14,[634,638],{"type":32,"tag":171,"props":635,"children":636},{"style":178},[637],{"type":38,"value":568},{"type":32,"tag":171,"props":639,"children":640},{"style":184},[641],{"type":38,"value":187},{"type":32,"tag":171,"props":643,"children":645},{"class":173,"line":644},15,[646,651,655],{"type":32,"tag":171,"props":647,"children":648},{"style":178},[649],{"type":38,"value":650},"          patterns",{"type":32,"tag":171,"props":652,"children":653},{"style":184},[654],{"type":38,"value":227},{"type":32,"tag":171,"props":656,"children":658},{"style":657},"--shiki-default:#F97583",[659],{"type":38,"value":660},"|\n",{"type":32,"tag":171,"props":662,"children":664},{"class":173,"line":663},16,[665],{"type":32,"tag":171,"props":666,"children":667},{"style":230},[668],{"type":38,"value":669},"            go.mod\n",{"type":32,"tag":171,"props":671,"children":673},{"class":173,"line":672},17,[674],{"type":32,"tag":171,"props":675,"children":676},{"style":230},[677],{"type":38,"value":678},"            go.sum                                    \n",{"type":32,"tag":171,"props":680,"children":682},{"class":173,"line":681},18,[683,687,691,695],{"type":32,"tag":171,"props":684,"children":685},{"style":184},[686],{"type":38,"value":524},{"type":32,"tag":171,"props":688,"children":689},{"style":178},[690],{"type":38,"value":421},{"type":32,"tag":171,"props":692,"children":693},{"style":184},[694],{"type":38,"value":227},{"type":32,"tag":171,"props":696,"children":697},{"style":230},[698],{"type":38,"value":699},"cache go\n",{"type":32,"tag":171,"props":701,"children":703},{"class":173,"line":702},19,[704,708,712],{"type":32,"tag":171,"props":705,"children":706},{"style":178},[707],{"type":38,"value":620},{"type":32,"tag":171,"props":709,"children":710},{"style":184},[711],{"type":38,"value":227},{"type":32,"tag":171,"props":713,"children":714},{"style":230},[715],{"type":38,"value":716},"cache-go\n",{"type":32,"tag":171,"props":718,"children":720},{"class":173,"line":719},20,[721,726,730],{"type":32,"tag":171,"props":722,"children":723},{"style":178},[724],{"type":38,"value":725},"        uses",{"type":32,"tag":171,"props":727,"children":728},{"style":184},[729],{"type":38,"value":227},{"type":32,"tag":171,"props":731,"children":732},{"style":230},[733],{"type":38,"value":734},"actions/cache@v3\n",{"type":32,"tag":171,"props":736,"children":738},{"class":173,"line":737},21,[739,743,747],{"type":32,"tag":171,"props":740,"children":741},{"style":178},[742],{"type":38,"value":568},{"type":32,"tag":171,"props":744,"children":745},{"style":184},[746],{"type":38,"value":227},{"type":32,"tag":171,"props":748,"children":749},{"style":361},[750],{"type":38,"value":751},"# Specify with your cache path\n",{"type":32,"tag":171,"props":753,"children":755},{"class":173,"line":754},22,[756,761,765],{"type":32,"tag":171,"props":757,"children":758},{"style":178},[759],{"type":38,"value":760},"          path",{"type":32,"tag":171,"props":762,"children":763},{"style":184},[764],{"type":38,"value":227},{"type":32,"tag":171,"props":766,"children":767},{"style":657},[768],{"type":38,"value":660},{"type":32,"tag":171,"props":770,"children":772},{"class":173,"line":771},23,[773],{"type":32,"tag":171,"props":774,"children":775},{"style":230},[776],{"type":38,"value":777},"            /your_cache_path                                    \n",{"type":32,"tag":171,"props":779,"children":781},{"class":173,"line":780},24,[782,787,791],{"type":32,"tag":171,"props":783,"children":784},{"style":178},[785],{"type":38,"value":786},"          key",{"type":32,"tag":171,"props":788,"children":789},{"style":184},[790],{"type":38,"value":227},{"type":32,"tag":171,"props":792,"children":793},{"style":230},[794],{"type":38,"value":795},"go_path-${{ steps.hash-go.outputs.hash }}\n",{"type":32,"tag":171,"props":797,"children":799},{"class":173,"line":798},25,[800,805,809],{"type":32,"tag":171,"props":801,"children":802},{"style":178},[803],{"type":38,"value":804},"          restore-keys",{"type":32,"tag":171,"props":806,"children":807},{"style":184},[808],{"type":38,"value":227},{"type":32,"tag":171,"props":810,"children":811},{"style":657},[812],{"type":38,"value":813},"|-\n",{"type":32,"tag":171,"props":815,"children":817},{"class":173,"line":816},26,[818],{"type":32,"tag":171,"props":819,"children":820},{"style":230},[821],{"type":38,"value":822},"            go_cache-${{ steps.hash-go.outputs.hash }}\n",{"type":32,"tag":41,"props":824,"children":825},{},[826,828,833],{"type":38,"value":827},"This example utilizes a go cache and ",{"type":32,"tag":52,"props":829,"children":830},{"className":7},[831],{"type":38,"value":832},"go-hashfiles",{"type":38,"value":834}," to generate a hash. You should specify your cache path according to your programming language and define the key in any form you like.",{"type":32,"tag":41,"props":836,"children":837},{},[838],{"type":32,"tag":125,"props":839,"children":840},{},[841],{"type":38,"value":129},{"type":32,"tag":843,"props":844,"children":845},"ol",{},[846,868],{"type":32,"tag":847,"props":848,"children":849},"li",{},[850,852,857,859,866],{"type":38,"value":851},"If you are running the Runner with docker. You may encounter network issue with the cache server. You should change the cache server host and port in ",{"type":32,"tag":52,"props":853,"children":854},{"className":7},[855],{"type":38,"value":856},"config.yaml",{"type":38,"value":858}," for your runner. The configuration is explained ",{"type":32,"tag":86,"props":860,"children":863},{"href":861,"rel":862},"https://docs.gitea.com/usage/actions/act-runner#configuring-cache-when-starting-a-runner-using-docker-image",[90],[864],{"type":38,"value":865},"here",{"type":38,"value":867}," in detail.",{"type":32,"tag":847,"props":869,"children":870},{},[871,873,878,880,889],{"type":38,"value":872},"The built-in function ",{"type":32,"tag":52,"props":874,"children":875},{"className":7},[876],{"type":38,"value":877},"hashFiles",{"type":38,"value":879}," in the workflow yaml is not supported in Gitea Actions right now. You can use ",{"type":32,"tag":86,"props":881,"children":884},{"href":882,"rel":883},"https://gitea.com/actions/go-hashfiles",[90],[885],{"type":32,"tag":52,"props":886,"children":887},{"className":7},[888],{"type":38,"value":832},{"type":38,"value":890},"(maintained by Gitea maintainers) or other alternatives instead.",{"type":32,"tag":33,"props":892,"children":894},{"id":893},"a-complete-example",[895],{"type":38,"value":896},"A Complete Example",{"type":32,"tag":41,"props":898,"children":899},{},[900],{"type":38,"value":901},"Let's use an example to demonstrate how to utilize these two types of caches in a real development environment.",{"type":32,"tag":41,"props":903,"children":904},{},[905,907,912],{"type":38,"value":906},"Assume we're going to build an app called ",{"type":32,"tag":52,"props":908,"children":909},{"className":7},[910],{"type":38,"value":911},"Hello-Gitea",{"type":38,"value":913}," using Go, and we enable the Gitea Actions workflow for every Push.",{"type":32,"tag":41,"props":915,"children":916},{},[917,919,926],{"type":38,"value":918},"Here is the workflow yaml(this file is also available ",{"type":32,"tag":86,"props":920,"children":923},{"href":921,"rel":922},"https://gitea.com/lng2020/cache_example/src/branch/main/.gitea/workflows/cache.yaml",[90],[924],{"type":38,"value":925},"on Gitea website",{"type":38,"value":927},")",{"type":32,"tag":161,"props":929,"children":931},{"className":163,"code":930,"language":165,"meta":7,"style":7},"name: Test Cache\n\non: \n  push\n\njobs:\n  TestCache:\n    env: \n      RUNNER_TOOL_CACHE: /toolcache # Runner Tool Cache\n    name: Cache Go\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v3\n\n      - uses: actions/setup-go@v3\n        with:\n          go-version: '>=1.20.1'\n\n      - name: Get go-hashfiles\n        uses: https://gitea.com/actions/go-hashfiles@v0.0.1\n        id: hash-go\n        with:\n          patterns: |-\n            go.mod\n            go.sum                                            \n\n      - name: Echo hash\n        run: echo ${{ steps.hash-go.outputs.hash }}\n        \n      - name: Cache go\n        id: cache-go\n        uses: https://github.com/actions/cache@v3 # Action cache\n        with: # specify with your GOMODCACHE and GOCACHE\n          path: |- \n            /root/go/pkg/mod\n            /root/.cache/go-build\n          key: go_cache-${{ steps.hash-go.outputs.hash }}  \n          restore-keys: |-\n            go_cache-${{ steps.hash-go.outputs.hash }}            \n\n      - name: Build\n        run: go build -v .\n\n      - name: Test\n        run: go test -v ./...\n",[932],{"type":32,"tag":52,"props":933,"children":934},{"__ignoreMap":7},[935,951,960,971,979,986,997,1009,1020,1040,1055,1070,1081,1100,1107,1126,1137,1152,1159,1179,1194,1209,1220,1235,1242,1250,1257,1278,1296,1305,1326,1342,1364,1381,1404,1413,1422,1444,1460,1469,1477,1498,1515,1523,1544],{"type":32,"tag":171,"props":936,"children":937},{"class":173,"line":174},[938,942,946],{"type":32,"tag":171,"props":939,"children":940},{"style":178},[941],{"type":38,"value":421},{"type":32,"tag":171,"props":943,"children":944},{"style":184},[945],{"type":38,"value":227},{"type":32,"tag":171,"props":947,"children":948},{"style":230},[949],{"type":38,"value":950},"Test Cache\n",{"type":32,"tag":171,"props":952,"children":953},{"class":173,"line":190},[954],{"type":32,"tag":171,"props":955,"children":957},{"emptyLinePlaceholder":956},true,[958],{"type":38,"value":959},"\n",{"type":32,"tag":171,"props":961,"children":962},{"class":173,"line":203},[963,967],{"type":32,"tag":171,"props":964,"children":965},{"style":436},[966],{"type":38,"value":439},{"type":32,"tag":171,"props":968,"children":969},{"style":184},[970],{"type":38,"value":314},{"type":32,"tag":171,"props":972,"children":973},{"class":173,"line":216},[974],{"type":32,"tag":171,"props":975,"children":976},{"style":230},[977],{"type":38,"value":978},"  push\n",{"type":32,"tag":171,"props":980,"children":981},{"class":173,"line":236},[982],{"type":32,"tag":171,"props":983,"children":984},{"emptyLinePlaceholder":956},[985],{"type":38,"value":959},{"type":32,"tag":171,"props":987,"children":988},{"class":173,"line":334},[989,993],{"type":32,"tag":171,"props":990,"children":991},{"style":178},[992],{"type":38,"value":181},{"type":32,"tag":171,"props":994,"children":995},{"style":184},[996],{"type":38,"value":187},{"type":32,"tag":171,"props":998,"children":999},{"class":173,"line":347},[1000,1005],{"type":32,"tag":171,"props":1001,"children":1002},{"style":178},[1003],{"type":38,"value":1004},"  TestCache",{"type":32,"tag":171,"props":1006,"children":1007},{"style":184},[1008],{"type":38,"value":187},{"type":32,"tag":171,"props":1010,"children":1011},{"class":173,"line":518},[1012,1016],{"type":32,"tag":171,"props":1013,"children":1014},{"style":178},[1015],{"type":38,"value":209},{"type":32,"tag":171,"props":1017,"children":1018},{"style":184},[1019],{"type":38,"value":314},{"type":32,"tag":171,"props":1021,"children":1022},{"class":173,"line":541},[1023,1027,1031,1035],{"type":32,"tag":171,"props":1024,"children":1025},{"style":178},[1026],{"type":38,"value":222},{"type":32,"tag":171,"props":1028,"children":1029},{"style":184},[1030],{"type":38,"value":227},{"type":32,"tag":171,"props":1032,"children":1033},{"style":230},[1034],{"type":38,"value":136},{"type":32,"tag":171,"props":1036,"children":1037},{"style":361},[1038],{"type":38,"value":1039}," # Runner Tool Cache\n",{"type":32,"tag":171,"props":1041,"children":1042},{"class":173,"line":562},[1043,1047,1051],{"type":32,"tag":171,"props":1044,"children":1045},{"style":178},[1046],{"type":38,"value":479},{"type":32,"tag":171,"props":1048,"children":1049},{"style":184},[1050],{"type":38,"value":227},{"type":32,"tag":171,"props":1052,"children":1053},{"style":230},[1054],{"type":38,"value":488},{"type":32,"tag":171,"props":1056,"children":1057},{"class":173,"line":575},[1058,1062,1066],{"type":32,"tag":171,"props":1059,"children":1060},{"style":178},[1061],{"type":38,"value":292},{"type":32,"tag":171,"props":1063,"children":1064},{"style":184},[1065],{"type":38,"value":227},{"type":32,"tag":171,"props":1067,"children":1068},{"style":230},[1069],{"type":38,"value":301},{"type":32,"tag":171,"props":1071,"children":1072},{"class":173,"line":593},[1073,1077],{"type":32,"tag":171,"props":1074,"children":1075},{"style":178},[1076],{"type":38,"value":511},{"type":32,"tag":171,"props":1078,"children":1079},{"style":184},[1080],{"type":38,"value":187},{"type":32,"tag":171,"props":1082,"children":1083},{"class":173,"line":614},[1084,1088,1092,1096],{"type":32,"tag":171,"props":1085,"children":1086},{"style":184},[1087],{"type":38,"value":524},{"type":32,"tag":171,"props":1089,"children":1090},{"style":178},[1091],{"type":38,"value":529},{"type":32,"tag":171,"props":1093,"children":1094},{"style":184},[1095],{"type":38,"value":227},{"type":32,"tag":171,"props":1097,"children":1098},{"style":230},[1099],{"type":38,"value":538},{"type":32,"tag":171,"props":1101,"children":1102},{"class":173,"line":632},[1103],{"type":32,"tag":171,"props":1104,"children":1105},{"emptyLinePlaceholder":956},[1106],{"type":38,"value":959},{"type":32,"tag":171,"props":1108,"children":1109},{"class":173,"line":644},[1110,1114,1118,1122],{"type":32,"tag":171,"props":1111,"children":1112},{"style":184},[1113],{"type":38,"value":524},{"type":32,"tag":171,"props":1115,"children":1116},{"style":178},[1117],{"type":38,"value":529},{"type":32,"tag":171,"props":1119,"children":1120},{"style":184},[1121],{"type":38,"value":227},{"type":32,"tag":171,"props":1123,"children":1124},{"style":230},[1125],{"type":38,"value":559},{"type":32,"tag":171,"props":1127,"children":1128},{"class":173,"line":663},[1129,1133],{"type":32,"tag":171,"props":1130,"children":1131},{"style":178},[1132],{"type":38,"value":568},{"type":32,"tag":171,"props":1134,"children":1135},{"style":184},[1136],{"type":38,"value":187},{"type":32,"tag":171,"props":1138,"children":1139},{"class":173,"line":672},[1140,1144,1148],{"type":32,"tag":171,"props":1141,"children":1142},{"style":178},[1143],{"type":38,"value":581},{"type":32,"tag":171,"props":1145,"children":1146},{"style":184},[1147],{"type":38,"value":227},{"type":32,"tag":171,"props":1149,"children":1150},{"style":230},[1151],{"type":38,"value":590},{"type":32,"tag":171,"props":1153,"children":1154},{"class":173,"line":681},[1155],{"type":32,"tag":171,"props":1156,"children":1157},{"emptyLinePlaceholder":956},[1158],{"type":38,"value":959},{"type":32,"tag":171,"props":1160,"children":1161},{"class":173,"line":702},[1162,1166,1170,1174],{"type":32,"tag":171,"props":1163,"children":1164},{"style":184},[1165],{"type":38,"value":524},{"type":32,"tag":171,"props":1167,"children":1168},{"style":178},[1169],{"type":38,"value":421},{"type":32,"tag":171,"props":1171,"children":1172},{"style":184},[1173],{"type":38,"value":227},{"type":32,"tag":171,"props":1175,"children":1176},{"style":230},[1177],{"type":38,"value":1178},"Get go-hashfiles\n",{"type":32,"tag":171,"props":1180,"children":1181},{"class":173,"line":719},[1182,1186,1190],{"type":32,"tag":171,"props":1183,"children":1184},{"style":178},[1185],{"type":38,"value":725},{"type":32,"tag":171,"props":1187,"children":1188},{"style":184},[1189],{"type":38,"value":227},{"type":32,"tag":171,"props":1191,"children":1192},{"style":230},[1193],{"type":38,"value":611},{"type":32,"tag":171,"props":1195,"children":1196},{"class":173,"line":737},[1197,1201,1205],{"type":32,"tag":171,"props":1198,"children":1199},{"style":178},[1200],{"type":38,"value":620},{"type":32,"tag":171,"props":1202,"children":1203},{"style":184},[1204],{"type":38,"value":227},{"type":32,"tag":171,"props":1206,"children":1207},{"style":230},[1208],{"type":38,"value":629},{"type":32,"tag":171,"props":1210,"children":1211},{"class":173,"line":754},[1212,1216],{"type":32,"tag":171,"props":1213,"children":1214},{"style":178},[1215],{"type":38,"value":568},{"type":32,"tag":171,"props":1217,"children":1218},{"style":184},[1219],{"type":38,"value":187},{"type":32,"tag":171,"props":1221,"children":1222},{"class":173,"line":771},[1223,1227,1231],{"type":32,"tag":171,"props":1224,"children":1225},{"style":178},[1226],{"type":38,"value":650},{"type":32,"tag":171,"props":1228,"children":1229},{"style":184},[1230],{"type":38,"value":227},{"type":32,"tag":171,"props":1232,"children":1233},{"style":657},[1234],{"type":38,"value":813},{"type":32,"tag":171,"props":1236,"children":1237},{"class":173,"line":780},[1238],{"type":32,"tag":171,"props":1239,"children":1240},{"style":230},[1241],{"type":38,"value":669},{"type":32,"tag":171,"props":1243,"children":1244},{"class":173,"line":798},[1245],{"type":32,"tag":171,"props":1246,"children":1247},{"style":230},[1248],{"type":38,"value":1249},"            go.sum                                            \n",{"type":32,"tag":171,"props":1251,"children":1252},{"class":173,"line":816},[1253],{"type":32,"tag":171,"props":1254,"children":1255},{"emptyLinePlaceholder":956},[1256],{"type":38,"value":959},{"type":32,"tag":171,"props":1258,"children":1260},{"class":173,"line":1259},27,[1261,1265,1269,1273],{"type":32,"tag":171,"props":1262,"children":1263},{"style":184},[1264],{"type":38,"value":524},{"type":32,"tag":171,"props":1266,"children":1267},{"style":178},[1268],{"type":38,"value":421},{"type":32,"tag":171,"props":1270,"children":1271},{"style":184},[1272],{"type":38,"value":227},{"type":32,"tag":171,"props":1274,"children":1275},{"style":230},[1276],{"type":38,"value":1277},"Echo hash\n",{"type":32,"tag":171,"props":1279,"children":1281},{"class":173,"line":1280},28,[1282,1287,1291],{"type":32,"tag":171,"props":1283,"children":1284},{"style":178},[1285],{"type":38,"value":1286},"        run",{"type":32,"tag":171,"props":1288,"children":1289},{"style":184},[1290],{"type":38,"value":227},{"type":32,"tag":171,"props":1292,"children":1293},{"style":230},[1294],{"type":38,"value":1295},"echo ${{ steps.hash-go.outputs.hash }}\n",{"type":32,"tag":171,"props":1297,"children":1299},{"class":173,"line":1298},29,[1300],{"type":32,"tag":171,"props":1301,"children":1302},{"style":184},[1303],{"type":38,"value":1304},"        \n",{"type":32,"tag":171,"props":1306,"children":1308},{"class":173,"line":1307},30,[1309,1313,1317,1321],{"type":32,"tag":171,"props":1310,"children":1311},{"style":184},[1312],{"type":38,"value":524},{"type":32,"tag":171,"props":1314,"children":1315},{"style":178},[1316],{"type":38,"value":421},{"type":32,"tag":171,"props":1318,"children":1319},{"style":184},[1320],{"type":38,"value":227},{"type":32,"tag":171,"props":1322,"children":1323},{"style":230},[1324],{"type":38,"value":1325},"Cache go\n",{"type":32,"tag":171,"props":1327,"children":1329},{"class":173,"line":1328},31,[1330,1334,1338],{"type":32,"tag":171,"props":1331,"children":1332},{"style":178},[1333],{"type":38,"value":620},{"type":32,"tag":171,"props":1335,"children":1336},{"style":184},[1337],{"type":38,"value":227},{"type":32,"tag":171,"props":1339,"children":1340},{"style":230},[1341],{"type":38,"value":716},{"type":32,"tag":171,"props":1343,"children":1345},{"class":173,"line":1344},32,[1346,1350,1354,1359],{"type":32,"tag":171,"props":1347,"children":1348},{"style":178},[1349],{"type":38,"value":725},{"type":32,"tag":171,"props":1351,"children":1352},{"style":184},[1353],{"type":38,"value":227},{"type":32,"tag":171,"props":1355,"children":1356},{"style":230},[1357],{"type":38,"value":1358},"https://github.com/actions/cache@v3",{"type":32,"tag":171,"props":1360,"children":1361},{"style":361},[1362],{"type":38,"value":1363}," # Action cache\n",{"type":32,"tag":171,"props":1365,"children":1367},{"class":173,"line":1366},33,[1368,1372,1376],{"type":32,"tag":171,"props":1369,"children":1370},{"style":178},[1371],{"type":38,"value":568},{"type":32,"tag":171,"props":1373,"children":1374},{"style":184},[1375],{"type":38,"value":227},{"type":32,"tag":171,"props":1377,"children":1378},{"style":361},[1379],{"type":38,"value":1380},"# specify with your GOMODCACHE and GOCACHE\n",{"type":32,"tag":171,"props":1382,"children":1384},{"class":173,"line":1383},34,[1385,1389,1393,1398],{"type":32,"tag":171,"props":1386,"children":1387},{"style":178},[1388],{"type":38,"value":760},{"type":32,"tag":171,"props":1390,"children":1391},{"style":184},[1392],{"type":38,"value":227},{"type":32,"tag":171,"props":1394,"children":1395},{"style":657},[1396],{"type":38,"value":1397},"|-",{"type":32,"tag":171,"props":1399,"children":1401},{"style":1400},"--shiki-default:#FDAEB7;--shiki-default-font-style:italic",[1402],{"type":38,"value":1403}," \n",{"type":32,"tag":171,"props":1405,"children":1407},{"class":173,"line":1406},35,[1408],{"type":32,"tag":171,"props":1409,"children":1410},{"style":230},[1411],{"type":38,"value":1412},"            /root/go/pkg/mod\n",{"type":32,"tag":171,"props":1414,"children":1416},{"class":173,"line":1415},36,[1417],{"type":32,"tag":171,"props":1418,"children":1419},{"style":230},[1420],{"type":38,"value":1421},"            /root/.cache/go-build\n",{"type":32,"tag":171,"props":1423,"children":1425},{"class":173,"line":1424},37,[1426,1430,1434,1439],{"type":32,"tag":171,"props":1427,"children":1428},{"style":178},[1429],{"type":38,"value":786},{"type":32,"tag":171,"props":1431,"children":1432},{"style":184},[1433],{"type":38,"value":227},{"type":32,"tag":171,"props":1435,"children":1436},{"style":230},[1437],{"type":38,"value":1438},"go_cache-${{ steps.hash-go.outputs.hash }}",{"type":32,"tag":171,"props":1440,"children":1441},{"style":184},[1442],{"type":38,"value":1443},"  \n",{"type":32,"tag":171,"props":1445,"children":1447},{"class":173,"line":1446},38,[1448,1452,1456],{"type":32,"tag":171,"props":1449,"children":1450},{"style":178},[1451],{"type":38,"value":804},{"type":32,"tag":171,"props":1453,"children":1454},{"style":184},[1455],{"type":38,"value":227},{"type":32,"tag":171,"props":1457,"children":1458},{"style":657},[1459],{"type":38,"value":813},{"type":32,"tag":171,"props":1461,"children":1463},{"class":173,"line":1462},39,[1464],{"type":32,"tag":171,"props":1465,"children":1466},{"style":230},[1467],{"type":38,"value":1468},"            go_cache-${{ steps.hash-go.outputs.hash }}            \n",{"type":32,"tag":171,"props":1470,"children":1472},{"class":173,"line":1471},40,[1473],{"type":32,"tag":171,"props":1474,"children":1475},{"emptyLinePlaceholder":956},[1476],{"type":38,"value":959},{"type":32,"tag":171,"props":1478,"children":1480},{"class":173,"line":1479},41,[1481,1485,1489,1493],{"type":32,"tag":171,"props":1482,"children":1483},{"style":184},[1484],{"type":38,"value":524},{"type":32,"tag":171,"props":1486,"children":1487},{"style":178},[1488],{"type":38,"value":421},{"type":32,"tag":171,"props":1490,"children":1491},{"style":184},[1492],{"type":38,"value":227},{"type":32,"tag":171,"props":1494,"children":1495},{"style":230},[1496],{"type":38,"value":1497},"Build\n",{"type":32,"tag":171,"props":1499,"children":1501},{"class":173,"line":1500},42,[1502,1506,1510],{"type":32,"tag":171,"props":1503,"children":1504},{"style":178},[1505],{"type":38,"value":1286},{"type":32,"tag":171,"props":1507,"children":1508},{"style":184},[1509],{"type":38,"value":227},{"type":32,"tag":171,"props":1511,"children":1512},{"style":230},[1513],{"type":38,"value":1514},"go build -v .\n",{"type":32,"tag":171,"props":1516,"children":1518},{"class":173,"line":1517},43,[1519],{"type":32,"tag":171,"props":1520,"children":1521},{"emptyLinePlaceholder":956},[1522],{"type":38,"value":959},{"type":32,"tag":171,"props":1524,"children":1526},{"class":173,"line":1525},44,[1527,1531,1535,1539],{"type":32,"tag":171,"props":1528,"children":1529},{"style":184},[1530],{"type":38,"value":524},{"type":32,"tag":171,"props":1532,"children":1533},{"style":178},[1534],{"type":38,"value":421},{"type":32,"tag":171,"props":1536,"children":1537},{"style":184},[1538],{"type":38,"value":227},{"type":32,"tag":171,"props":1540,"children":1541},{"style":230},[1542],{"type":38,"value":1543},"Test\n",{"type":32,"tag":171,"props":1545,"children":1547},{"class":173,"line":1546},45,[1548,1552,1556],{"type":32,"tag":171,"props":1549,"children":1550},{"style":178},[1551],{"type":38,"value":1286},{"type":32,"tag":171,"props":1553,"children":1554},{"style":184},[1555],{"type":38,"value":227},{"type":32,"tag":171,"props":1557,"children":1558},{"style":230},[1559],{"type":38,"value":1560},"go test -v ./...\n",{"type":32,"tag":41,"props":1562,"children":1563},{},[1564],{"type":38,"value":1565},"After setting everything up, we can see how these caches are utilized.",{"type":32,"tag":41,"props":1567,"children":1568},{},[1569],{"type":32,"tag":371,"props":1570,"children":1573},{"alt":1571,"src":1572},"tool cache","/img/tutorials/enable-gitea-actions-cache-to-accelerate-cicd/tool_cache.png",[],{"type":32,"tag":41,"props":1575,"children":1576},{},[1577],{"type":32,"tag":371,"props":1578,"children":1581},{"alt":1579,"src":1580},"action cache","/img/tutorials/enable-gitea-actions-cache-to-accelerate-cicd/action_cache.png",[],{"type":32,"tag":33,"props":1583,"children":1585},{"id":1584},"faq",[1586],{"type":38,"value":1587},"FAQ",{"type":32,"tag":41,"props":1589,"children":1590},{},[1591,1593,1598],{"type":38,"value":1592},"Q: Why should I specify ",{"type":32,"tag":52,"props":1594,"children":1595},{"className":7},[1596],{"type":38,"value":1597},"RUNNER_TOOL_CACHE: /toolcache",{"type":38,"value":1599}," to make the Runner Tool Cache work? It seems like it should cache the file by default",{"type":32,"tag":41,"props":1601,"children":1602},{},[1603,1605,1609,1611,1618],{"type":38,"value":1604},"A: It's an upstream issue of ",{"type":32,"tag":52,"props":1606,"children":1607},{"className":7},[1608],{"type":38,"value":152},{"type":38,"value":1610},". See the ",{"type":32,"tag":86,"props":1612,"children":1615},{"href":1613,"rel":1614},"https://gitea.com/gitea/runner/issues/70",[90],[1616],{"type":38,"value":1617},"issue",{"type":38,"value":1619}," for more details.",{"type":32,"tag":41,"props":1621,"children":1622},{},[1623],{"type":38,"value":1624},"Q: Can different runners on the same host share the Runner Tool Cache?",{"type":32,"tag":41,"props":1626,"children":1627},{},[1628],{"type":38,"value":1629},"A: Yes, they can. To do so, use a Docker volume to map the cache directory.",{"type":32,"tag":1631,"props":1632,"children":1633},"style",{},[1634],{"type":38,"value":1635},"html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":7,"searchDepth":190,"depth":190,"links":1637},[1638,1639,1640,1641,1642],{"id":35,"depth":190,"text":39},{"id":98,"depth":190,"text":101},{"id":388,"depth":190,"text":391},{"id":893,"depth":190,"text":896},{"id":1584,"depth":190,"text":1587},"markdown","content:resources:tutorials:2.enable-gitea-actions-cache-to-accelerate-cicd.md","content","resources/tutorials/2.enable-gitea-actions-cache-to-accelerate-cicd.md","md",{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"labels":1649,"category":1650,"author":1651,"coverImage":20,"datetime":21,"date":22,"readingTime":1652,"body":1653,"_type":1643,"_id":1644,"_source":1645,"_file":1646,"_extension":1647},[11],{"title":13,"href":14},{"name":16,"href":17,"imageUrl":18,"role":19},{"text":24,"minutes":25,"time":26,"words":27},{"type":29,"children":1654,"toc":3019},[1655,1659,1663,1682,1697,1701,1715,1739,1743,1804,1813,1908,1915,1922,1926,1935,1939,2299,2308,2315,2351,2355,2359,2368,2378,2963,2967,2973,2979,2983,2992,3007,3011,3015],{"type":32,"tag":33,"props":1656,"children":1657},{"id":35},[1658],{"type":38,"value":39},{"type":32,"tag":41,"props":1660,"children":1661},{},[1662],{"type":38,"value":45},{"type":32,"tag":41,"props":1664,"children":1665},{},[1666,1667,1671,1672,1676,1677,1681],{"type":38,"value":50},{"type":32,"tag":52,"props":1668,"children":1669},{"className":7},[1670],{"type":38,"value":56},{"type":38,"value":58},{"type":32,"tag":52,"props":1673,"children":1674},{"className":7},[1675],{"type":38,"value":63},{"type":38,"value":65},{"type":32,"tag":52,"props":1678,"children":1679},{"className":7},[1680],{"type":38,"value":70},{"type":38,"value":72},{"type":32,"tag":41,"props":1683,"children":1684},{},[1685,1686,1690,1691,1696],{"type":38,"value":77},{"type":32,"tag":52,"props":1687,"children":1688},{"className":7},[1689],{"type":38,"value":82},{"type":38,"value":84},{"type":32,"tag":86,"props":1692,"children":1694},{"href":88,"rel":1693},[90],[1695],{"type":38,"value":93},{"type":38,"value":95},{"type":32,"tag":33,"props":1698,"children":1699},{"id":98},[1700],{"type":38,"value":101},{"type":32,"tag":41,"props":1702,"children":1703},{},[1704,1705,1709,1710,1714],{"type":38,"value":106},{"type":32,"tag":52,"props":1706,"children":1707},{"className":7},[1708],{"type":38,"value":111},{"type":38,"value":113},{"type":32,"tag":52,"props":1711,"children":1712},{"className":7},[1713],{"type":38,"value":118},{"type":38,"value":120},{"type":32,"tag":41,"props":1716,"children":1717},{},[1718,1722,1723,1727,1728,1733,1734,1738],{"type":32,"tag":125,"props":1719,"children":1720},{},[1721],{"type":38,"value":129},{"type":38,"value":131},{"type":32,"tag":52,"props":1724,"children":1725},{"className":7},[1726],{"type":38,"value":136},{"type":38,"value":138},{"type":32,"tag":86,"props":1729,"children":1731},{"href":141,"rel":1730},[90],[1732],{"type":38,"value":145},{"type":38,"value":147},{"type":32,"tag":52,"props":1735,"children":1736},{"className":7},[1737],{"type":38,"value":152},{"type":38,"value":154},{"type":32,"tag":41,"props":1740,"children":1741},{},[1742],{"type":38,"value":159},{"type":32,"tag":161,"props":1744,"children":1745},{"className":163,"code":164,"language":165,"meta":7,"style":7},[1746],{"type":32,"tag":52,"props":1747,"children":1748},{"__ignoreMap":7},[1749,1760,1771,1782,1797],{"type":32,"tag":171,"props":1750,"children":1751},{"class":173,"line":174},[1752,1756],{"type":32,"tag":171,"props":1753,"children":1754},{"style":178},[1755],{"type":38,"value":181},{"type":32,"tag":171,"props":1757,"children":1758},{"style":184},[1759],{"type":38,"value":187},{"type":32,"tag":171,"props":1761,"children":1762},{"class":173,"line":190},[1763,1767],{"type":32,"tag":171,"props":1764,"children":1765},{"style":178},[1766],{"type":38,"value":196},{"type":32,"tag":171,"props":1768,"children":1769},{"style":184},[1770],{"type":38,"value":187},{"type":32,"tag":171,"props":1772,"children":1773},{"class":173,"line":203},[1774,1778],{"type":32,"tag":171,"props":1775,"children":1776},{"style":178},[1777],{"type":38,"value":209},{"type":32,"tag":171,"props":1779,"children":1780},{"style":184},[1781],{"type":38,"value":187},{"type":32,"tag":171,"props":1783,"children":1784},{"class":173,"line":216},[1785,1789,1793],{"type":32,"tag":171,"props":1786,"children":1787},{"style":178},[1788],{"type":38,"value":222},{"type":32,"tag":171,"props":1790,"children":1791},{"style":184},[1792],{"type":38,"value":227},{"type":32,"tag":171,"props":1794,"children":1795},{"style":230},[1796],{"type":38,"value":233},{"type":32,"tag":171,"props":1798,"children":1799},{"class":173,"line":236},[1800],{"type":32,"tag":171,"props":1801,"children":1802},{"style":240},[1803],{"type":38,"value":243},{"type":32,"tag":41,"props":1805,"children":1806},{},[1807,1808,1812],{"type":38,"value":248},{"type":32,"tag":52,"props":1809,"children":1810},{"className":7},[1811],{"type":38,"value":253},{"type":38,"value":255},{"type":32,"tag":161,"props":1814,"children":1815},{"className":163,"code":258,"language":165,"meta":7,"style":7},[1816],{"type":32,"tag":52,"props":1817,"children":1818},{"__ignoreMap":7},[1819,1830,1841,1856,1867,1882,1893],{"type":32,"tag":171,"props":1820,"children":1821},{"class":173,"line":174},[1822,1826],{"type":32,"tag":171,"props":1823,"children":1824},{"style":178},[1825],{"type":38,"value":181},{"type":32,"tag":171,"props":1827,"children":1828},{"style":184},[1829],{"type":38,"value":187},{"type":32,"tag":171,"props":1831,"children":1832},{"class":173,"line":190},[1833,1837],{"type":32,"tag":171,"props":1834,"children":1835},{"style":178},[1836],{"type":38,"value":196},{"type":32,"tag":171,"props":1838,"children":1839},{"style":184},[1840],{"type":38,"value":187},{"type":32,"tag":171,"props":1842,"children":1843},{"class":173,"line":203},[1844,1848,1852],{"type":32,"tag":171,"props":1845,"children":1846},{"style":178},[1847],{"type":38,"value":292},{"type":32,"tag":171,"props":1849,"children":1850},{"style":184},[1851],{"type":38,"value":227},{"type":32,"tag":171,"props":1853,"children":1854},{"style":230},[1855],{"type":38,"value":301},{"type":32,"tag":171,"props":1857,"children":1858},{"class":173,"line":216},[1859,1863],{"type":32,"tag":171,"props":1860,"children":1861},{"style":178},[1862],{"type":38,"value":309},{"type":32,"tag":171,"props":1864,"children":1865},{"style":184},[1866],{"type":38,"value":314},{"type":32,"tag":171,"props":1868,"children":1869},{"class":173,"line":236},[1870,1874,1878],{"type":32,"tag":171,"props":1871,"children":1872},{"style":178},[1873],{"type":38,"value":322},{"type":32,"tag":171,"props":1875,"children":1876},{"style":184},[1877],{"type":38,"value":227},{"type":32,"tag":171,"props":1879,"children":1880},{"style":230},[1881],{"type":38,"value":331},{"type":32,"tag":171,"props":1883,"children":1884},{"class":173,"line":334},[1885,1889],{"type":32,"tag":171,"props":1886,"children":1887},{"style":178},[1888],{"type":38,"value":340},{"type":32,"tag":171,"props":1890,"children":1891},{"style":184},[1892],{"type":38,"value":187},{"type":32,"tag":171,"props":1894,"children":1895},{"class":173,"line":347},[1896,1900,1904],{"type":32,"tag":171,"props":1897,"children":1898},{"style":184},[1899],{"type":38,"value":353},{"type":32,"tag":171,"props":1901,"children":1902},{"style":230},[1903],{"type":38,"value":358},{"type":32,"tag":171,"props":1905,"children":1906},{"style":361},[1907],{"type":38,"value":364},{"type":32,"tag":41,"props":1909,"children":1910},{},[1911,1912],{"type":38,"value":369},{"type":32,"tag":371,"props":1913,"children":1914},{"alt":373,"src":374},[],{"type":32,"tag":41,"props":1916,"children":1917},{},[1918,1919],{"type":38,"value":380},{"type":32,"tag":371,"props":1920,"children":1921},{"alt":383,"src":384},[],{"type":32,"tag":33,"props":1923,"children":1924},{"id":388},[1925],{"type":38,"value":391},{"type":32,"tag":41,"props":1927,"children":1928},{},[1929,1930,1934],{"type":38,"value":396},{"type":32,"tag":52,"props":1931,"children":1932},{"className":7},[1933],{"type":38,"value":82},{"type":38,"value":402},{"type":32,"tag":41,"props":1936,"children":1937},{},[1938],{"type":38,"value":159},{"type":32,"tag":161,"props":1940,"children":1941},{"className":163,"code":409,"language":165,"meta":7,"style":7},[1942],{"type":32,"tag":52,"props":1943,"children":1944},{"__ignoreMap":7},[1945,1960,1975,1986,1997,2012,2027,2038,2057,2076,2087,2102,2121,2136,2147,2162,2169,2176,2195,2210,2225,2240,2255,2262,2277,2292],{"type":32,"tag":171,"props":1946,"children":1947},{"class":173,"line":174},[1948,1952,1956],{"type":32,"tag":171,"props":1949,"children":1950},{"style":178},[1951],{"type":38,"value":421},{"type":32,"tag":171,"props":1953,"children":1954},{"style":184},[1955],{"type":38,"value":227},{"type":32,"tag":171,"props":1957,"children":1958},{"style":230},[1959],{"type":38,"value":430},{"type":32,"tag":171,"props":1961,"children":1962},{"class":173,"line":190},[1963,1967,1971],{"type":32,"tag":171,"props":1964,"children":1965},{"style":436},[1966],{"type":38,"value":439},{"type":32,"tag":171,"props":1968,"children":1969},{"style":184},[1970],{"type":38,"value":227},{"type":32,"tag":171,"props":1972,"children":1973},{"style":230},[1974],{"type":38,"value":448},{"type":32,"tag":171,"props":1976,"children":1977},{"class":173,"line":203},[1978,1982],{"type":32,"tag":171,"props":1979,"children":1980},{"style":178},[1981],{"type":38,"value":181},{"type":32,"tag":171,"props":1983,"children":1984},{"style":184},[1985],{"type":38,"value":187},{"type":32,"tag":171,"props":1987,"children":1988},{"class":173,"line":216},[1989,1993],{"type":32,"tag":171,"props":1990,"children":1991},{"style":178},[1992],{"type":38,"value":467},{"type":32,"tag":171,"props":1994,"children":1995},{"style":184},[1996],{"type":38,"value":187},{"type":32,"tag":171,"props":1998,"children":1999},{"class":173,"line":236},[2000,2004,2008],{"type":32,"tag":171,"props":2001,"children":2002},{"style":178},[2003],{"type":38,"value":479},{"type":32,"tag":171,"props":2005,"children":2006},{"style":184},[2007],{"type":38,"value":227},{"type":32,"tag":171,"props":2009,"children":2010},{"style":230},[2011],{"type":38,"value":488},{"type":32,"tag":171,"props":2013,"children":2014},{"class":173,"line":334},[2015,2019,2023],{"type":32,"tag":171,"props":2016,"children":2017},{"style":178},[2018],{"type":38,"value":292},{"type":32,"tag":171,"props":2020,"children":2021},{"style":184},[2022],{"type":38,"value":227},{"type":32,"tag":171,"props":2024,"children":2025},{"style":230},[2026],{"type":38,"value":301},{"type":32,"tag":171,"props":2028,"children":2029},{"class":173,"line":347},[2030,2034],{"type":32,"tag":171,"props":2031,"children":2032},{"style":178},[2033],{"type":38,"value":511},{"type":32,"tag":171,"props":2035,"children":2036},{"style":184},[2037],{"type":38,"value":187},{"type":32,"tag":171,"props":2039,"children":2040},{"class":173,"line":518},[2041,2045,2049,2053],{"type":32,"tag":171,"props":2042,"children":2043},{"style":184},[2044],{"type":38,"value":524},{"type":32,"tag":171,"props":2046,"children":2047},{"style":178},[2048],{"type":38,"value":529},{"type":32,"tag":171,"props":2050,"children":2051},{"style":184},[2052],{"type":38,"value":227},{"type":32,"tag":171,"props":2054,"children":2055},{"style":230},[2056],{"type":38,"value":538},{"type":32,"tag":171,"props":2058,"children":2059},{"class":173,"line":541},[2060,2064,2068,2072],{"type":32,"tag":171,"props":2061,"children":2062},{"style":184},[2063],{"type":38,"value":524},{"type":32,"tag":171,"props":2065,"children":2066},{"style":178},[2067],{"type":38,"value":529},{"type":32,"tag":171,"props":2069,"children":2070},{"style":184},[2071],{"type":38,"value":227},{"type":32,"tag":171,"props":2073,"children":2074},{"style":230},[2075],{"type":38,"value":559},{"type":32,"tag":171,"props":2077,"children":2078},{"class":173,"line":562},[2079,2083],{"type":32,"tag":171,"props":2080,"children":2081},{"style":178},[2082],{"type":38,"value":568},{"type":32,"tag":171,"props":2084,"children":2085},{"style":184},[2086],{"type":38,"value":187},{"type":32,"tag":171,"props":2088,"children":2089},{"class":173,"line":575},[2090,2094,2098],{"type":32,"tag":171,"props":2091,"children":2092},{"style":178},[2093],{"type":38,"value":581},{"type":32,"tag":171,"props":2095,"children":2096},{"style":184},[2097],{"type":38,"value":227},{"type":32,"tag":171,"props":2099,"children":2100},{"style":230},[2101],{"type":38,"value":590},{"type":32,"tag":171,"props":2103,"children":2104},{"class":173,"line":593},[2105,2109,2113,2117],{"type":32,"tag":171,"props":2106,"children":2107},{"style":184},[2108],{"type":38,"value":524},{"type":32,"tag":171,"props":2110,"children":2111},{"style":178},[2112],{"type":38,"value":529},{"type":32,"tag":171,"props":2114,"children":2115},{"style":184},[2116],{"type":38,"value":227},{"type":32,"tag":171,"props":2118,"children":2119},{"style":230},[2120],{"type":38,"value":611},{"type":32,"tag":171,"props":2122,"children":2123},{"class":173,"line":614},[2124,2128,2132],{"type":32,"tag":171,"props":2125,"children":2126},{"style":178},[2127],{"type":38,"value":620},{"type":32,"tag":171,"props":2129,"children":2130},{"style":184},[2131],{"type":38,"value":227},{"type":32,"tag":171,"props":2133,"children":2134},{"style":230},[2135],{"type":38,"value":629},{"type":32,"tag":171,"props":2137,"children":2138},{"class":173,"line":632},[2139,2143],{"type":32,"tag":171,"props":2140,"children":2141},{"style":178},[2142],{"type":38,"value":568},{"type":32,"tag":171,"props":2144,"children":2145},{"style":184},[2146],{"type":38,"value":187},{"type":32,"tag":171,"props":2148,"children":2149},{"class":173,"line":644},[2150,2154,2158],{"type":32,"tag":171,"props":2151,"children":2152},{"style":178},[2153],{"type":38,"value":650},{"type":32,"tag":171,"props":2155,"children":2156},{"style":184},[2157],{"type":38,"value":227},{"type":32,"tag":171,"props":2159,"children":2160},{"style":657},[2161],{"type":38,"value":660},{"type":32,"tag":171,"props":2163,"children":2164},{"class":173,"line":663},[2165],{"type":32,"tag":171,"props":2166,"children":2167},{"style":230},[2168],{"type":38,"value":669},{"type":32,"tag":171,"props":2170,"children":2171},{"class":173,"line":672},[2172],{"type":32,"tag":171,"props":2173,"children":2174},{"style":230},[2175],{"type":38,"value":678},{"type":32,"tag":171,"props":2177,"children":2178},{"class":173,"line":681},[2179,2183,2187,2191],{"type":32,"tag":171,"props":2180,"children":2181},{"style":184},[2182],{"type":38,"value":524},{"type":32,"tag":171,"props":2184,"children":2185},{"style":178},[2186],{"type":38,"value":421},{"type":32,"tag":171,"props":2188,"children":2189},{"style":184},[2190],{"type":38,"value":227},{"type":32,"tag":171,"props":2192,"children":2193},{"style":230},[2194],{"type":38,"value":699},{"type":32,"tag":171,"props":2196,"children":2197},{"class":173,"line":702},[2198,2202,2206],{"type":32,"tag":171,"props":2199,"children":2200},{"style":178},[2201],{"type":38,"value":620},{"type":32,"tag":171,"props":2203,"children":2204},{"style":184},[2205],{"type":38,"value":227},{"type":32,"tag":171,"props":2207,"children":2208},{"style":230},[2209],{"type":38,"value":716},{"type":32,"tag":171,"props":2211,"children":2212},{"class":173,"line":719},[2213,2217,2221],{"type":32,"tag":171,"props":2214,"children":2215},{"style":178},[2216],{"type":38,"value":725},{"type":32,"tag":171,"props":2218,"children":2219},{"style":184},[2220],{"type":38,"value":227},{"type":32,"tag":171,"props":2222,"children":2223},{"style":230},[2224],{"type":38,"value":734},{"type":32,"tag":171,"props":2226,"children":2227},{"class":173,"line":737},[2228,2232,2236],{"type":32,"tag":171,"props":2229,"children":2230},{"style":178},[2231],{"type":38,"value":568},{"type":32,"tag":171,"props":2233,"children":2234},{"style":184},[2235],{"type":38,"value":227},{"type":32,"tag":171,"props":2237,"children":2238},{"style":361},[2239],{"type":38,"value":751},{"type":32,"tag":171,"props":2241,"children":2242},{"class":173,"line":754},[2243,2247,2251],{"type":32,"tag":171,"props":2244,"children":2245},{"style":178},[2246],{"type":38,"value":760},{"type":32,"tag":171,"props":2248,"children":2249},{"style":184},[2250],{"type":38,"value":227},{"type":32,"tag":171,"props":2252,"children":2253},{"style":657},[2254],{"type":38,"value":660},{"type":32,"tag":171,"props":2256,"children":2257},{"class":173,"line":771},[2258],{"type":32,"tag":171,"props":2259,"children":2260},{"style":230},[2261],{"type":38,"value":777},{"type":32,"tag":171,"props":2263,"children":2264},{"class":173,"line":780},[2265,2269,2273],{"type":32,"tag":171,"props":2266,"children":2267},{"style":178},[2268],{"type":38,"value":786},{"type":32,"tag":171,"props":2270,"children":2271},{"style":184},[2272],{"type":38,"value":227},{"type":32,"tag":171,"props":2274,"children":2275},{"style":230},[2276],{"type":38,"value":795},{"type":32,"tag":171,"props":2278,"children":2279},{"class":173,"line":798},[2280,2284,2288],{"type":32,"tag":171,"props":2281,"children":2282},{"style":178},[2283],{"type":38,"value":804},{"type":32,"tag":171,"props":2285,"children":2286},{"style":184},[2287],{"type":38,"value":227},{"type":32,"tag":171,"props":2289,"children":2290},{"style":657},[2291],{"type":38,"value":813},{"type":32,"tag":171,"props":2293,"children":2294},{"class":173,"line":816},[2295],{"type":32,"tag":171,"props":2296,"children":2297},{"style":230},[2298],{"type":38,"value":822},{"type":32,"tag":41,"props":2300,"children":2301},{},[2302,2303,2307],{"type":38,"value":827},{"type":32,"tag":52,"props":2304,"children":2305},{"className":7},[2306],{"type":38,"value":832},{"type":38,"value":834},{"type":32,"tag":41,"props":2309,"children":2310},{},[2311],{"type":32,"tag":125,"props":2312,"children":2313},{},[2314],{"type":38,"value":129},{"type":32,"tag":843,"props":2316,"children":2317},{},[2318,2333],{"type":32,"tag":847,"props":2319,"children":2320},{},[2321,2322,2326,2327,2332],{"type":38,"value":851},{"type":32,"tag":52,"props":2323,"children":2324},{"className":7},[2325],{"type":38,"value":856},{"type":38,"value":858},{"type":32,"tag":86,"props":2328,"children":2330},{"href":861,"rel":2329},[90],[2331],{"type":38,"value":865},{"type":38,"value":867},{"type":32,"tag":847,"props":2334,"children":2335},{},[2336,2337,2341,2342,2350],{"type":38,"value":872},{"type":32,"tag":52,"props":2338,"children":2339},{"className":7},[2340],{"type":38,"value":877},{"type":38,"value":879},{"type":32,"tag":86,"props":2343,"children":2345},{"href":882,"rel":2344},[90],[2346],{"type":32,"tag":52,"props":2347,"children":2348},{"className":7},[2349],{"type":38,"value":832},{"type":38,"value":890},{"type":32,"tag":33,"props":2352,"children":2353},{"id":893},[2354],{"type":38,"value":896},{"type":32,"tag":41,"props":2356,"children":2357},{},[2358],{"type":38,"value":901},{"type":32,"tag":41,"props":2360,"children":2361},{},[2362,2363,2367],{"type":38,"value":906},{"type":32,"tag":52,"props":2364,"children":2365},{"className":7},[2366],{"type":38,"value":911},{"type":38,"value":913},{"type":32,"tag":41,"props":2369,"children":2370},{},[2371,2372,2377],{"type":38,"value":918},{"type":32,"tag":86,"props":2373,"children":2375},{"href":921,"rel":2374},[90],[2376],{"type":38,"value":925},{"type":38,"value":927},{"type":32,"tag":161,"props":2379,"children":2380},{"className":163,"code":930,"language":165,"meta":7,"style":7},[2381],{"type":32,"tag":52,"props":2382,"children":2383},{"__ignoreMap":7},[2384,2399,2406,2417,2424,2431,2442,2453,2464,2483,2498,2513,2524,2543,2550,2569,2580,2595,2602,2621,2636,2651,2662,2677,2684,2691,2698,2717,2732,2739,2758,2773,2792,2807,2826,2833,2840,2859,2874,2881,2888,2907,2922,2929,2948],{"type":32,"tag":171,"props":2385,"children":2386},{"class":173,"line":174},[2387,2391,2395],{"type":32,"tag":171,"props":2388,"children":2389},{"style":178},[2390],{"type":38,"value":421},{"type":32,"tag":171,"props":2392,"children":2393},{"style":184},[2394],{"type":38,"value":227},{"type":32,"tag":171,"props":2396,"children":2397},{"style":230},[2398],{"type":38,"value":950},{"type":32,"tag":171,"props":2400,"children":2401},{"class":173,"line":190},[2402],{"type":32,"tag":171,"props":2403,"children":2404},{"emptyLinePlaceholder":956},[2405],{"type":38,"value":959},{"type":32,"tag":171,"props":2407,"children":2408},{"class":173,"line":203},[2409,2413],{"type":32,"tag":171,"props":2410,"children":2411},{"style":436},[2412],{"type":38,"value":439},{"type":32,"tag":171,"props":2414,"children":2415},{"style":184},[2416],{"type":38,"value":314},{"type":32,"tag":171,"props":2418,"children":2419},{"class":173,"line":216},[2420],{"type":32,"tag":171,"props":2421,"children":2422},{"style":230},[2423],{"type":38,"value":978},{"type":32,"tag":171,"props":2425,"children":2426},{"class":173,"line":236},[2427],{"type":32,"tag":171,"props":2428,"children":2429},{"emptyLinePlaceholder":956},[2430],{"type":38,"value":959},{"type":32,"tag":171,"props":2432,"children":2433},{"class":173,"line":334},[2434,2438],{"type":32,"tag":171,"props":2435,"children":2436},{"style":178},[2437],{"type":38,"value":181},{"type":32,"tag":171,"props":2439,"children":2440},{"style":184},[2441],{"type":38,"value":187},{"type":32,"tag":171,"props":2443,"children":2444},{"class":173,"line":347},[2445,2449],{"type":32,"tag":171,"props":2446,"children":2447},{"style":178},[2448],{"type":38,"value":1004},{"type":32,"tag":171,"props":2450,"children":2451},{"style":184},[2452],{"type":38,"value":187},{"type":32,"tag":171,"props":2454,"children":2455},{"class":173,"line":518},[2456,2460],{"type":32,"tag":171,"props":2457,"children":2458},{"style":178},[2459],{"type":38,"value":209},{"type":32,"tag":171,"props":2461,"children":2462},{"style":184},[2463],{"type":38,"value":314},{"type":32,"tag":171,"props":2465,"children":2466},{"class":173,"line":541},[2467,2471,2475,2479],{"type":32,"tag":171,"props":2468,"children":2469},{"style":178},[2470],{"type":38,"value":222},{"type":32,"tag":171,"props":2472,"children":2473},{"style":184},[2474],{"type":38,"value":227},{"type":32,"tag":171,"props":2476,"children":2477},{"style":230},[2478],{"type":38,"value":136},{"type":32,"tag":171,"props":2480,"children":2481},{"style":361},[2482],{"type":38,"value":1039},{"type":32,"tag":171,"props":2484,"children":2485},{"class":173,"line":562},[2486,2490,2494],{"type":32,"tag":171,"props":2487,"children":2488},{"style":178},[2489],{"type":38,"value":479},{"type":32,"tag":171,"props":2491,"children":2492},{"style":184},[2493],{"type":38,"value":227},{"type":32,"tag":171,"props":2495,"children":2496},{"style":230},[2497],{"type":38,"value":488},{"type":32,"tag":171,"props":2499,"children":2500},{"class":173,"line":575},[2501,2505,2509],{"type":32,"tag":171,"props":2502,"children":2503},{"style":178},[2504],{"type":38,"value":292},{"type":32,"tag":171,"props":2506,"children":2507},{"style":184},[2508],{"type":38,"value":227},{"type":32,"tag":171,"props":2510,"children":2511},{"style":230},[2512],{"type":38,"value":301},{"type":32,"tag":171,"props":2514,"children":2515},{"class":173,"line":593},[2516,2520],{"type":32,"tag":171,"props":2517,"children":2518},{"style":178},[2519],{"type":38,"value":511},{"type":32,"tag":171,"props":2521,"children":2522},{"style":184},[2523],{"type":38,"value":187},{"type":32,"tag":171,"props":2525,"children":2526},{"class":173,"line":614},[2527,2531,2535,2539],{"type":32,"tag":171,"props":2528,"children":2529},{"style":184},[2530],{"type":38,"value":524},{"type":32,"tag":171,"props":2532,"children":2533},{"style":178},[2534],{"type":38,"value":529},{"type":32,"tag":171,"props":2536,"children":2537},{"style":184},[2538],{"type":38,"value":227},{"type":32,"tag":171,"props":2540,"children":2541},{"style":230},[2542],{"type":38,"value":538},{"type":32,"tag":171,"props":2544,"children":2545},{"class":173,"line":632},[2546],{"type":32,"tag":171,"props":2547,"children":2548},{"emptyLinePlaceholder":956},[2549],{"type":38,"value":959},{"type":32,"tag":171,"props":2551,"children":2552},{"class":173,"line":644},[2553,2557,2561,2565],{"type":32,"tag":171,"props":2554,"children":2555},{"style":184},[2556],{"type":38,"value":524},{"type":32,"tag":171,"props":2558,"children":2559},{"style":178},[2560],{"type":38,"value":529},{"type":32,"tag":171,"props":2562,"children":2563},{"style":184},[2564],{"type":38,"value":227},{"type":32,"tag":171,"props":2566,"children":2567},{"style":230},[2568],{"type":38,"value":559},{"type":32,"tag":171,"props":2570,"children":2571},{"class":173,"line":663},[2572,2576],{"type":32,"tag":171,"props":2573,"children":2574},{"style":178},[2575],{"type":38,"value":568},{"type":32,"tag":171,"props":2577,"children":2578},{"style":184},[2579],{"type":38,"value":187},{"type":32,"tag":171,"props":2581,"children":2582},{"class":173,"line":672},[2583,2587,2591],{"type":32,"tag":171,"props":2584,"children":2585},{"style":178},[2586],{"type":38,"value":581},{"type":32,"tag":171,"props":2588,"children":2589},{"style":184},[2590],{"type":38,"value":227},{"type":32,"tag":171,"props":2592,"children":2593},{"style":230},[2594],{"type":38,"value":590},{"type":32,"tag":171,"props":2596,"children":2597},{"class":173,"line":681},[2598],{"type":32,"tag":171,"props":2599,"children":2600},{"emptyLinePlaceholder":956},[2601],{"type":38,"value":959},{"type":32,"tag":171,"props":2603,"children":2604},{"class":173,"line":702},[2605,2609,2613,2617],{"type":32,"tag":171,"props":2606,"children":2607},{"style":184},[2608],{"type":38,"value":524},{"type":32,"tag":171,"props":2610,"children":2611},{"style":178},[2612],{"type":38,"value":421},{"type":32,"tag":171,"props":2614,"children":2615},{"style":184},[2616],{"type":38,"value":227},{"type":32,"tag":171,"props":2618,"children":2619},{"style":230},[2620],{"type":38,"value":1178},{"type":32,"tag":171,"props":2622,"children":2623},{"class":173,"line":719},[2624,2628,2632],{"type":32,"tag":171,"props":2625,"children":2626},{"style":178},[2627],{"type":38,"value":725},{"type":32,"tag":171,"props":2629,"children":2630},{"style":184},[2631],{"type":38,"value":227},{"type":32,"tag":171,"props":2633,"children":2634},{"style":230},[2635],{"type":38,"value":611},{"type":32,"tag":171,"props":2637,"children":2638},{"class":173,"line":737},[2639,2643,2647],{"type":32,"tag":171,"props":2640,"children":2641},{"style":178},[2642],{"type":38,"value":620},{"type":32,"tag":171,"props":2644,"children":2645},{"style":184},[2646],{"type":38,"value":227},{"type":32,"tag":171,"props":2648,"children":2649},{"style":230},[2650],{"type":38,"value":629},{"type":32,"tag":171,"props":2652,"children":2653},{"class":173,"line":754},[2654,2658],{"type":32,"tag":171,"props":2655,"children":2656},{"style":178},[2657],{"type":38,"value":568},{"type":32,"tag":171,"props":2659,"children":2660},{"style":184},[2661],{"type":38,"value":187},{"type":32,"tag":171,"props":2663,"children":2664},{"class":173,"line":771},[2665,2669,2673],{"type":32,"tag":171,"props":2666,"children":2667},{"style":178},[2668],{"type":38,"value":650},{"type":32,"tag":171,"props":2670,"children":2671},{"style":184},[2672],{"type":38,"value":227},{"type":32,"tag":171,"props":2674,"children":2675},{"style":657},[2676],{"type":38,"value":813},{"type":32,"tag":171,"props":2678,"children":2679},{"class":173,"line":780},[2680],{"type":32,"tag":171,"props":2681,"children":2682},{"style":230},[2683],{"type":38,"value":669},{"type":32,"tag":171,"props":2685,"children":2686},{"class":173,"line":798},[2687],{"type":32,"tag":171,"props":2688,"children":2689},{"style":230},[2690],{"type":38,"value":1249},{"type":32,"tag":171,"props":2692,"children":2693},{"class":173,"line":816},[2694],{"type":32,"tag":171,"props":2695,"children":2696},{"emptyLinePlaceholder":956},[2697],{"type":38,"value":959},{"type":32,"tag":171,"props":2699,"children":2700},{"class":173,"line":1259},[2701,2705,2709,2713],{"type":32,"tag":171,"props":2702,"children":2703},{"style":184},[2704],{"type":38,"value":524},{"type":32,"tag":171,"props":2706,"children":2707},{"style":178},[2708],{"type":38,"value":421},{"type":32,"tag":171,"props":2710,"children":2711},{"style":184},[2712],{"type":38,"value":227},{"type":32,"tag":171,"props":2714,"children":2715},{"style":230},[2716],{"type":38,"value":1277},{"type":32,"tag":171,"props":2718,"children":2719},{"class":173,"line":1280},[2720,2724,2728],{"type":32,"tag":171,"props":2721,"children":2722},{"style":178},[2723],{"type":38,"value":1286},{"type":32,"tag":171,"props":2725,"children":2726},{"style":184},[2727],{"type":38,"value":227},{"type":32,"tag":171,"props":2729,"children":2730},{"style":230},[2731],{"type":38,"value":1295},{"type":32,"tag":171,"props":2733,"children":2734},{"class":173,"line":1298},[2735],{"type":32,"tag":171,"props":2736,"children":2737},{"style":184},[2738],{"type":38,"value":1304},{"type":32,"tag":171,"props":2740,"children":2741},{"class":173,"line":1307},[2742,2746,2750,2754],{"type":32,"tag":171,"props":2743,"children":2744},{"style":184},[2745],{"type":38,"value":524},{"type":32,"tag":171,"props":2747,"children":2748},{"style":178},[2749],{"type":38,"value":421},{"type":32,"tag":171,"props":2751,"children":2752},{"style":184},[2753],{"type":38,"value":227},{"type":32,"tag":171,"props":2755,"children":2756},{"style":230},[2757],{"type":38,"value":1325},{"type":32,"tag":171,"props":2759,"children":2760},{"class":173,"line":1328},[2761,2765,2769],{"type":32,"tag":171,"props":2762,"children":2763},{"style":178},[2764],{"type":38,"value":620},{"type":32,"tag":171,"props":2766,"children":2767},{"style":184},[2768],{"type":38,"value":227},{"type":32,"tag":171,"props":2770,"children":2771},{"style":230},[2772],{"type":38,"value":716},{"type":32,"tag":171,"props":2774,"children":2775},{"class":173,"line":1344},[2776,2780,2784,2788],{"type":32,"tag":171,"props":2777,"children":2778},{"style":178},[2779],{"type":38,"value":725},{"type":32,"tag":171,"props":2781,"children":2782},{"style":184},[2783],{"type":38,"value":227},{"type":32,"tag":171,"props":2785,"children":2786},{"style":230},[2787],{"type":38,"value":1358},{"type":32,"tag":171,"props":2789,"children":2790},{"style":361},[2791],{"type":38,"value":1363},{"type":32,"tag":171,"props":2793,"children":2794},{"class":173,"line":1366},[2795,2799,2803],{"type":32,"tag":171,"props":2796,"children":2797},{"style":178},[2798],{"type":38,"value":568},{"type":32,"tag":171,"props":2800,"children":2801},{"style":184},[2802],{"type":38,"value":227},{"type":32,"tag":171,"props":2804,"children":2805},{"style":361},[2806],{"type":38,"value":1380},{"type":32,"tag":171,"props":2808,"children":2809},{"class":173,"line":1383},[2810,2814,2818,2822],{"type":32,"tag":171,"props":2811,"children":2812},{"style":178},[2813],{"type":38,"value":760},{"type":32,"tag":171,"props":2815,"children":2816},{"style":184},[2817],{"type":38,"value":227},{"type":32,"tag":171,"props":2819,"children":2820},{"style":657},[2821],{"type":38,"value":1397},{"type":32,"tag":171,"props":2823,"children":2824},{"style":1400},[2825],{"type":38,"value":1403},{"type":32,"tag":171,"props":2827,"children":2828},{"class":173,"line":1406},[2829],{"type":32,"tag":171,"props":2830,"children":2831},{"style":230},[2832],{"type":38,"value":1412},{"type":32,"tag":171,"props":2834,"children":2835},{"class":173,"line":1415},[2836],{"type":32,"tag":171,"props":2837,"children":2838},{"style":230},[2839],{"type":38,"value":1421},{"type":32,"tag":171,"props":2841,"children":2842},{"class":173,"line":1424},[2843,2847,2851,2855],{"type":32,"tag":171,"props":2844,"children":2845},{"style":178},[2846],{"type":38,"value":786},{"type":32,"tag":171,"props":2848,"children":2849},{"style":184},[2850],{"type":38,"value":227},{"type":32,"tag":171,"props":2852,"children":2853},{"style":230},[2854],{"type":38,"value":1438},{"type":32,"tag":171,"props":2856,"children":2857},{"style":184},[2858],{"type":38,"value":1443},{"type":32,"tag":171,"props":2860,"children":2861},{"class":173,"line":1446},[2862,2866,2870],{"type":32,"tag":171,"props":2863,"children":2864},{"style":178},[2865],{"type":38,"value":804},{"type":32,"tag":171,"props":2867,"children":2868},{"style":184},[2869],{"type":38,"value":227},{"type":32,"tag":171,"props":2871,"children":2872},{"style":657},[2873],{"type":38,"value":813},{"type":32,"tag":171,"props":2875,"children":2876},{"class":173,"line":1462},[2877],{"type":32,"tag":171,"props":2878,"children":2879},{"style":230},[2880],{"type":38,"value":1468},{"type":32,"tag":171,"props":2882,"children":2883},{"class":173,"line":1471},[2884],{"type":32,"tag":171,"props":2885,"children":2886},{"emptyLinePlaceholder":956},[2887],{"type":38,"value":959},{"type":32,"tag":171,"props":2889,"children":2890},{"class":173,"line":1479},[2891,2895,2899,2903],{"type":32,"tag":171,"props":2892,"children":2893},{"style":184},[2894],{"type":38,"value":524},{"type":32,"tag":171,"props":2896,"children":2897},{"style":178},[2898],{"type":38,"value":421},{"type":32,"tag":171,"props":2900,"children":2901},{"style":184},[2902],{"type":38,"value":227},{"type":32,"tag":171,"props":2904,"children":2905},{"style":230},[2906],{"type":38,"value":1497},{"type":32,"tag":171,"props":2908,"children":2909},{"class":173,"line":1500},[2910,2914,2918],{"type":32,"tag":171,"props":2911,"children":2912},{"style":178},[2913],{"type":38,"value":1286},{"type":32,"tag":171,"props":2915,"children":2916},{"style":184},[2917],{"type":38,"value":227},{"type":32,"tag":171,"props":2919,"children":2920},{"style":230},[2921],{"type":38,"value":1514},{"type":32,"tag":171,"props":2923,"children":2924},{"class":173,"line":1517},[2925],{"type":32,"tag":171,"props":2926,"children":2927},{"emptyLinePlaceholder":956},[2928],{"type":38,"value":959},{"type":32,"tag":171,"props":2930,"children":2931},{"class":173,"line":1525},[2932,2936,2940,2944],{"type":32,"tag":171,"props":2933,"children":2934},{"style":184},[2935],{"type":38,"value":524},{"type":32,"tag":171,"props":2937,"children":2938},{"style":178},[2939],{"type":38,"value":421},{"type":32,"tag":171,"props":2941,"children":2942},{"style":184},[2943],{"type":38,"value":227},{"type":32,"tag":171,"props":2945,"children":2946},{"style":230},[2947],{"type":38,"value":1543},{"type":32,"tag":171,"props":2949,"children":2950},{"class":173,"line":1546},[2951,2955,2959],{"type":32,"tag":171,"props":2952,"children":2953},{"style":178},[2954],{"type":38,"value":1286},{"type":32,"tag":171,"props":2956,"children":2957},{"style":184},[2958],{"type":38,"value":227},{"type":32,"tag":171,"props":2960,"children":2961},{"style":230},[2962],{"type":38,"value":1560},{"type":32,"tag":41,"props":2964,"children":2965},{},[2966],{"type":38,"value":1565},{"type":32,"tag":41,"props":2968,"children":2969},{},[2970],{"type":32,"tag":371,"props":2971,"children":2972},{"alt":1571,"src":1572},[],{"type":32,"tag":41,"props":2974,"children":2975},{},[2976],{"type":32,"tag":371,"props":2977,"children":2978},{"alt":1579,"src":1580},[],{"type":32,"tag":33,"props":2980,"children":2981},{"id":1584},[2982],{"type":38,"value":1587},{"type":32,"tag":41,"props":2984,"children":2985},{},[2986,2987,2991],{"type":38,"value":1592},{"type":32,"tag":52,"props":2988,"children":2989},{"className":7},[2990],{"type":38,"value":1597},{"type":38,"value":1599},{"type":32,"tag":41,"props":2993,"children":2994},{},[2995,2996,3000,3001,3006],{"type":38,"value":1604},{"type":32,"tag":52,"props":2997,"children":2998},{"className":7},[2999],{"type":38,"value":152},{"type":38,"value":1610},{"type":32,"tag":86,"props":3002,"children":3004},{"href":1613,"rel":3003},[90],[3005],{"type":38,"value":1617},{"type":38,"value":1619},{"type":32,"tag":41,"props":3008,"children":3009},{},[3010],{"type":38,"value":1624},{"type":32,"tag":41,"props":3012,"children":3013},{},[3014],{"type":38,"value":1629},{"type":32,"tag":1631,"props":3016,"children":3017},{},[3018],{"type":38,"value":1635},{"title":7,"searchDepth":190,"depth":190,"links":3020},[3021,3022,3023,3024,3025],{"id":35,"depth":190,"text":39},{"id":98,"depth":190,"text":101},{"id":388,"depth":190,"text":391},{"id":893,"depth":190,"text":896},{"id":1584,"depth":190,"text":1587},1782602788206]