René's URL Explorer Experiment


Title: [FR] Git blame support · Issue #650 · sourcebot-dev/sourcebot · GitHub

Open Graph Title: [FR] Git blame support · Issue #650 · sourcebot-dev/sourcebot

X Title: [FR] Git blame support · Issue #650 · sourcebot-dev/sourcebot

Description: Support viewing git blame information when browsing code. I personally like GitKraken's approach of putting the blame information inline with the cursor. Getting blame data Got a prototype working here. Basically, we can use git blame -w...

Open Graph Description: Support viewing git blame information when browsing code. I personally like GitKraken's approach of putting the blame information inline with the cursor. Getting blame data Got a prototype working ...

X Description: Support viewing git blame information when browsing code. I personally like GitKraken's approach of putting the blame information inline with the cursor. Getting blame data Got a prototype work...

Opengraph URL: https://github.com/sourcebot-dev/sourcebot/issues/650

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"[FR] Git blame support","articleBody":"Support viewing git blame information when browsing code. I personally like [GitKraken](https://help.gitkraken.com/gitlens/gitlens-features/#current-line-blame)'s approach of putting the blame information inline with the cursor.\n\n## Getting blame data\n\nGot a prototype working [here](https://www.typescriptlang.org/play/?#code/JYOwLgpgTgZghgYwgAgEIBs4FsIEkQwD2yA3gFDKXIAWcAztQFzJ1hSgDmA3BVYex1Bx0AGVARmIAK5YARtB5VkMIaPGSZ8qIqpwpYav2at2Ibr0p6D-ALJxg6Y2047L+w1AAqwHBrkKLZCsPTwAvJ1NzJQRCLCxgMEgoCJdAmLiEpLsHFLNXZHT4xOhvX2Rpf2002KKksNyoqjoZLDgoAE8G-IAHKAgAN2BCKToAfi7AlXQIEGwJFmc8wPRxAGFCcBmwCYBfMjIYKRAEMCGQZG62uggMOYB5fW79AAphsCfthciASmZbnHwRAA2gBdUjVECsZArEAQOjIAC8yDeHwAdHRuiswM8AOQAHRAOO++RikLAyFkmBwABE4GA4H8qXgCIRQYjkKCeIEAPTc5CrRDUFBEKDIAwoTBQ9KYiCQClM5BbDrIZ4i6HiZAcKDDbp0b7LWXQ+hgdZYGWQf7zAAKbVOwgAPJbAYQAHzskg7fLTckIKRQPrgS3MG1QO3oR1M51upEer2G0BiWEAcW1Um67Pg6GuXKUauepKhMJQhBg6thevBSiUvOQdjACGoYqFNAgcAAJtAy-N7bQGG77fxgIJZugALRF-sqEfj8RuoH2rU60d0YChCAukGBaIbKFC9vQOsN9lF1GtevUZ7cgB6zyBAAZRwBOOCjmAgkgAFjvO2+KrxbYAal-Z5-yA55xj-QDvm+UYABJuWJfYqyoYBS2ePcOygQ9qF-chkOQgtySBAAaGh6GoUjB2HYREwgUipxo8RSMXNMAGVVwgMEkQwg86QbHN8OiP0AzAS13S3QSqF7CiJMk5EBFUWjmEuKBrnwbEqMUpjkAARjvb5iNkySGLUWFlKuZlsRM2jSL0gyjKUT0kLk5Aa1wUsWPTFc10VAAPYBWDoUiDAC5BQvFBZbWRUs4HKCAAHdNVTboHJQtDPPYtdcNS5CE3EFMdXZNgpAgfJBJ2RUsxQPCXOrPkADliE8lgOOQHA4EhZB4pQUAhXYckYG1LAmwlY0Clic0UEpOYcqrPLk2SjNhGzWahP9LYxJjVb8NRXbJRNCbvRuJlDNqwTpNOs7kM0kclIuCz1NeBTbu0uzLqu3MtLM+7VMs1Uvro3T9Pes6nNqvZyqMmsQ2uNrZXbOlYpUCB0DbOgjJR2HUJVE9WFtOgAHUEgvHFgn4ZAiWy2rfXWwMmVRMnRSRXGpFkExOGeAB2RDIcEzGerQ3H6VDQnidxRnR1aBwKegysXJpkTLQZ9xbHsdBj3EdFWfZsxnh0gAmb5UT6TFEAgS8r3tAAfF14I4UicSJMqqAh-D+bCwXNbxkWiYMcWVagUdThwGWqfl4SNvpxnShQJEVLU8BnhZtnFg4PXDds-TncoV3kPd7Gk694WwFFv3SYDoPQlDuW5IVyO5mV6wvCr5mve11O9azozc6rfPPdhdFi9LknCkyTtKZryS67phvR+KJmuy1lPIk7nn8J7pQ+5xov8d9keajHwOpfVieatriOZ5wVE56yNWNYH5pl45nSAFYjZNzAkAt63be5e2Kadt3DGVUPbbwfkPPeuIb7QCDj4FAp9ZrT1EvTaBXg4Hsnjn9ZOOs06vwMkDNeyEN5UC3oXcBu8xY4lQZXauZ8p4X2QbPA+88wj3wgEvHBesADMhCqzEMoKQoWFCy7NDiG0dotDEEMKVqI1oypW4P3bivAAHLwxywCsb93Yd7EukCcS9AGEMEYkjqbSPpgYwYwx4QKO0Uojmj41Euw0QLMB2iIGUKmDMOYJjw600YVfTxswQ42I4R3Bx2dkD8Mqpo1xg9hEkzxGABBtUay0XGpscAyBRxNlCnIgA1vCCKMw2zRRGgUBh8pvFKnaFIvxSsizrAyeSEJj9OE6UQrNGsrE4D9BQCFeE9Ayn7XGmaI6lSQ5qkOGAP0EoNSeXRrVAu80IAFTTGHK6+1TSTU2qQZAu1r5mO8WDD6HYxmbMOrKY6DcGkbEgOALgrk+TUg2DiH0hBugSKLOku5YBtqUFOZco0rAtlHSVjdRisIImCQBXKc5ozLlK2suIKFTjOl8gAIJthKWAYgfRmjoBLrNaaNJEaoieAwfMhyQ6DKdCyDpKS+QACU4SGjVLCXy5Jqm1MVgqGMxyiFQz5LgDgIB+DFnFKKZGqN4QrDyfA2QwwQBtnETiJsdIuooDbC88ksIIBtkCHsQIfRplQHOMSiAtJ6Q8ENYRTUCQHjvH0OyAABh+HScAABsEBZAfmUXAO8XDHwvxfq2GAnMIB3ggB6hAHrZAIDjTAO8yjZCcwQDpCAnMuEfhfrpXNOkyCM2QJi7ABaK7H2QAuBIAABDE7Zr6EFRFIPJLpS1N1gSHHSnMPUfh7cox8j59ato8DQgCd4x13jIKg5ASYEgAAlWaTuYUkSWd97Sio-u0KtggDCs3rVgFt1Dg4oE7d23t-bB2HqrqOJNY6yCyPEcgVi1BTB5OQM8hAcrRQ+DgBwFA3kpoSIAH46W5FwikEi+hYEIIMMwyAjiwiQHQOgD73nwmeAAYm7YbMgFijHwgHXADNHqdIeuUTGrhcAuHKM5gGiAekPxcIgG6mAOkkAwBfm2FjH5ZBti4SU99n7PEHAcF4kOAnoBCYAJDoZYO0cAcBfIIi1R+6A3JlOCZE4wfNgbZADt0xAR8fa4DBpgH2l+4b4CsdTW2D1nM2ysZIy-LhCAe2yFzfrIGQ7yaoADMq84ABpFGVIvNH1XWzagq5QjTANlmrdx890tolke3SnMGO+pfqRwdSWr13hoxOqdM6wDztkIujI88V3SzXWKzEm7t3UF3ekA9S6YHJc7Wl5RGXlEXua4HMAOW8t3paA+-oYGIAwBFOSDDr9VE4b6JY4x+tZD6zIzpTtnNHx8YHTADbfG7yyDDfrNs+tOac220G9NdnOZObvG+wgKnYAieE9MIJKBxMPemGQaTWTRw-Z+9O9AhBZDCBYDEboKB+htGAHASkcJvu-dHGQHTenHwGaMyZszFm4BWYQDZuzDmPVOZc9x5AHmuEhbQL5jqyBAvoGCxLct9pwuRei-rWLHB4uNZC+249qWs0dcy1zvrWTcu3oK3Ohd1CGfrogDVrdxMGuxCa2V5drXefpYF5e4XA373KhG4qcb-BJvoem-qXDViSdLZW2tjbbYts7bbHtg7R2TtnZfhdtsV2uE3be0JwJ3ifePck4jx8unFso8M8+dHQbMfY9x-ZtNBPnOueQGBj85OfPFKpzTunZawsMGZ3R1nH44tqwS4L9BbW+edayxXIX16Bti6KxLnrFX1ZVY3XLndsgy+Hor2r-nXXSu1Ba-129OuJF67GxNlUxuX4zbNwty3abrebf1ttrhu39uc0O8d07-a3cZo99d2793fciZeyfjTH2vusUNCWTUAOgfq1kFIBwJS2gcBkFsOgqJg+h-0xHsZi-KZtHmNljggNZrZvHo5knsTh+MgC-OnpTgFkFiWvTnnhFqEFFoXmzhzoruXh2v3tXoLqPvlj1tOuLiVpLqutLrLnVgrvukPofNzilu1sQZrvXmPkNrrqNgbqGDPibrNoYubotstsvidjbnbhvg7lvjvi7vvu7p7t7ndlfhAE9qJq9ioRJoHjJp4EKLDG0CgAWMAJhHqsgAAERPCUjAAIDmFBBKpdQODP5TRwByolKgA4plLfq-q-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-swW0W5qP+x1BwFpqiKzqiB+K2+2xALW-W0Wp63+1R+ILc4PU6Q8yPR7cTqziTjpLpCKz815Tk5K35VQ8zTQ6zavXuawxCzzTU+3jC+mXvW01HUi3JWIxaxLbnble9VfdizWYrXWfff9cKXsyS-m0S59jJvDtZzZ7Z3Z-DmQHeJ6l6q2CjgZvB9xi-NE4Rrxtg6tuNtgxy22C-DxoxnR2BvrB5ogYWpkxtTPVtcJ2HaJxHbKzzvrMGse0w6CWCxe-PFe55XJ3U4C3tfCyrn3ulxllhqCRnZ+w+p4+TCuKMjYQkO0KRFBr0n60EC1GYNMMgHa98vYLCKKB1CUiMH+mmNAIMHQPwNisQLQEqr11APBjIxFL0HdnCNcD-nm2M+S851BXAG5-2t2rIF55g3qhRmE0m-APrEFyF7xnRkxfAazhkxu2K8HbexQ3uyzZ2hV5l8dme+vWq7FyWoVwC7uyV8p4Qb91V20+p3Vw1z4JiM12AK121NBn0sQLFH0xwL1-1w64N52CN3BrDM0GDlAFNzN51-N22It8t7Bqt9qIhpt7-nhxZ19jZ2gFhSUgAFqEAQB5Lkg2eOd7eudQVHeefefnd+dXeBd2Z3dhdMU5o3cvf+mkP-O5PFfh2Jbffb4Zcw85cRXA9Qmg8a-g9a+Q9pd69Zew8n1Z31eiiNdI8IAtdtfo+ddY+cC49TEDdOv2Gjck8Tfk8BSU+eHU+08gAgArfNhrdM9wgs9mc7eFt3DFuMdVsaiNvIChB88C+jjoWozQDC-Hv7eHcecneS++eXcBc3dy+hcPfIDAnpcq9ZPitCc7sicFMz2q7Q-W8G9TpG9Qsff1MQ-Zk-dW--c1fNH28tRNfO8o+u8deeEe89eare-4++9E9jcsCB8U9QCzdkQLcoBLcR9R8amM8bdx-bev2MqXH1RBDdCvrtglI-aiqjhykNhGEvhIChioQ2F0hwiF8ucDuYvUvqdx84Xd-O13W7rXzo6el9Y0RGLq90E7q9Eu97FLp33K5j9suUnCphvX74m8UB0rB9nqyh6YCbeKLZSlP0d4rBZ+qPdrhjy67Y8ve92H3kNz97E9xuZPHfnvzD6H86eHAMpDH3P5bdWeplSTATDuCMp-M1ITGq5Cz789fkMAL8CxgZY2ZF2fqbNHeAcw6RuMtmXtIXj7RhpGM7GD1GBlgGwCm+cXLdq3zvaEC0BvWDAVOwYante+lTa9ieRDqfdh+qdS3o4OrJkDwqzRbpnIIF4ao2Yk3TsHazPwgVSWRLVEMELACjgey1wcngX0kyrA7gVoZGl6yVT8BuQ8Qv+A2igwlJFiWqKAHkOz5gAChWsYaKiG5AHAlBXtGAKoMMxQcvOWgnQall9T6DHwhgsbBljAze1lsFgzdrPSK5m9ku2vcTqP18HODsBgPS9ngJvbWDPB5vEfrrxmFvtkWAQ5SkEIqGhDkhQHPrrmxEGeI4hFQxId6gOGpDr+t-P9mjxKRap4oIAAHO2AAHF9gBx3UAVL0r6QCa+93OjnpBJxLthhb3eLh4KH7m992uvSrj3zmGqsFhiA-AW3yS7XUEWGAmEePy2FKU7eCPGfi7zR4L9Me3XHHiv2YFr9WBG-APpwOD678qeI3cPpH3p7R8z+WpYQQn1frpDMh2Q0oeUPkF7I6hTnIvqL3c6fDy+4AmXtX2C7QDx6vHL3CCKQFz1Te7fGVugJIEYisBoVTEn30RFLDkByI1AaVxazoi-u1XLER03h4O9Ee1A-EXQPd7EimBn6FgYTwcKb9Sek3GkdwPpG8Dj+TI0-ut1ZHx9oh5nUQTcP5BJg7g1tdFDcUOLUgEQN2cMXcFYgIgYQUgTYncLz5P9iA3IBAFgDbB8hahOYvMfshY6fF7moRd2vRWTwb4U8vHPSPx1V5-NFRBAr7lMKILolNRolbmriQH5t4pKinOFhbwk4a4zR5rYbGfWfIYsC6H5L6grT0rK0GyFdXDuyNzbs97Oa46ziWMJqzVHm81KsfAWKb1jm+73ZYRCImHAshxu5DsdJzVaQs5OfYi8rqyaYr1hxanW3hp3HGvVQOH1OWvpznFl0H6JnY4cuK1qbiqKRNHcaPWJxcIc0G+Q8ZYNGFg9lRYnVLheLKbtNcu2JW8bqPk7at4qj4tEc+PqIjjauWVKfJLW06YtpxxdWcT9XnHl1H6S4oMTtys7WdOeb+FgLQD6AlIVgsgKAJDlhxC9+6BNMCduI46VioJwJLNHBJGEJd9RtgyYShOSqgs4RGEw8rJ2wn3jk6WZbwahP8HYj3xaLCcSGwrKfVqJt9Qzn9VVqEtTKJwwPEn2LbNsIATHWEPRw4mGE2wM4NmLny54F8hJztMsfZQrHPMU8npaCdJNBFWC9RNglsYpLbGXiOaWorsVFXcGSVYq-Y1EWV0IkiMEWcPUiW0SMlfjdOOlGiXfUskEtGJINV+uIMkHSDGUrkOAH2VAku12ODlcSW5iowp54BnzdygJzV5Ni5JMU1USC0k5XicBN49SSlN7FpSHxRAp8cNJfEms3xY4wyZ+MvpYtip5kkqguIYmmcmJr9JqQFOJqcd2pTFLhBqI8D+0qavUxsWMKQl2CkqcUtCYlJk7di7x00rSYaPsFZS9J5ovKTlQvp5Vvx19X8bRP-HGdAKz9YCWS05FZDLgH6H9OwgABW03c4O0DaAgBUQAOD9AACo9kaM01FAAQCoh2gWAdWLUIOlsdyxTzKcl+BTzelKa3zBsS3yikrCzxUIm8i4JenJSE6qUpOjq1mkET5pRE18eQKzqad0Wxk-KsDKKoGctp9EwCVXShls8YZeM9GfyOJnoyKZ1FKmbuLgKyjZyDM+cvBNknRSIe7M4SpzPGmvSNJ70-mdpMfZCzspKuXKU9TIlacAZOndaTOM2l4ttpCsyGXtJXEqzahcMvJAjMIptg3MIcxAGHN-QRySsfku5pTMCnUynKTDZAF+HCkKjbpKIlUV9MdkA94ReXLCZNJTK2y8JAszKQXIn6n0VpedNaVRJxayzfZ8siGRZ1snX5g53IUOeHO5AkUhQrQeENHPhlxy+57-QeWQEi7BcuhnaetryyoxUYsUEBE7vWyPzGZnMrnF+BASg4ZzgSbqPjobKnoRSEJSo3OchKGkpY2hMHOAdFxUkRUS5PMqaXzIrn2ziBtDTQdfIJw-TRxyoDYs8GuBtAGwr-W5BAA5R6hmAnjYAJsV6YlQuofUFALFBNiEAVwOKZUPFGGCowS25IBqWDjaDKMserYQmY2AdagLyQ2MBIF1B1J9A-+7+GANiQigAKiF3yUhZQvhAIBqFkAEpBhmgkfhJZbCu8HKWMxwBe2FLLtOmhRxhpYGDuLFIgEMwRMfUXCGAIGlpm7TKpQcjIVkOHmxy4QfcziWYS0W9yGA7kg4BRgZaUZlU87AzLGhcyMMDu+sCAKzhVY3dZ2r8MNBmxw5HsM5HmVdhdK+ZGyZJ4IzXmzJ14mCOsPaVbGew-Zx0exZc5+UpzWGhKX44S-NO+1+kSJtGdIZ4D2V+CPo2ArYHACUhiAdgWAhCo8BhnmY8JCpd4INLlnu59pIu3LWzOYyaHPhOMe2YAohzbBfgdmOkJbDvNUXmV1FXIgxaPIACOJUDoCIGI5SAEZ-InuWMomXtAplZgGZb+i1ngSxJwU7NBnLAwU1upAdJmceJZmniO++c3SZbMvYPzNWvMhTjNNflzTdJNcsWR+PrmAyip3s3FnRIAltybJSs0QestEmtStle832muz8VHzs5iEs+fdMRbtiEpnYrmVvRKJat+adsz6Q9JvJPKDJbsiWYVK9lmTPlYMqyRVMGVa1Qx+M84OgqgAFI4ZKAGtMMEJnepCAlQyOZ2Txi04AVw9IFTTM9LZos5fUnOQaPPFKSRp8K68ZcommPzYltyj6YOJFULTRGS0v6eRI9mUTTJTcv8UZ2JUDLqqbPclWrKpU0qzYyAelX6CQAKpKh-coZoMlADsr0Ak8w7EkvMazyUcyiBeb20Q6ps3cj4NeYTk3nbz4CTmXeQfP2VXTDlYIwfkEtOUPSr5TDL+RcuLmSrrlT8mVWirlVXYP5caxAliofR-zGFQCkhWApyWQLoFSGWBfFHgVdckFKC-gBInQVSBMFoqbBX2UIX4KSlgC4hSAo5SgIKF8UKha2E4VBA6FnYBhaUs7WbBu1fathRwrMLcKklfCgoAIqwYvxhFDuMNMRgMxjZU0HGO8DIoFZkYnMCipRTB2slRC1FZKm-sgApVdR+ARqpACaum5mqmVlqvRe4TJCqkTFwi+AHxmhyRp4OcaDlqljsUOKqM0TbjKtmAJAacObuDOWTX5U3SoVQqqEYkuSWRKi5mEpNcipuW4T4lOkk9FRiSVuoUlWwj9s0QyXYhslzAViHkrmCFLS2f6MdTPgqULrqlXnOzIxnqWs4SMnLMbLbkzbtKmhOObpcol6WYN4COqmISGMvXXrDVtae9aasZUWruQ4y6AO0HHDTLZltq+kBysTmsdtZKc3WW5i84Zz3m8G5mf1NNmQideHMu+dErelxKBxawzFcRNRY4qCpDc9VSDNKn4tFxEm4MVKThzrigta4t4cKPF5l8zuFfCAbLylH-Dx6y1U6fKIFWIb5Jwq6ESaMLmqTRQiw0uRZtZkZSjRaojLTmuVCUCrRyPWgW70X72jSRjo8kc6P94cD3R03WkaHy9HIAj+jI-gQz39HM9L+K40LUAJFES9It4oqvlALi26QwMXnJLQhtPlIade3ff7gmuxI5apVeWk5fhKrkpYltpokWdsJxGWi8Rc-AkfQKX4kijhZI25AT2G4uiqRzWkPnN3a2daT+FwFkX1o7ngVAtf2b9uxIJjepvtCOQUYAJL6ijRt0vcbX8IV4+0ECPiwhogOS3zbUtUI3bZlsN46jctgq1LWsNR0laJEZW47ZVsJEMDPetWzsPVtu2Nat+1IlrZ6IP4da+BAg97Rf0+2fZ7JJbFtmnxckZ8ey3kt-L5MHIUUk5+mo6W1IQKBrlqZmo5RtqjV5yMVFs2zUlKRXLod66UrbYVurkuba5bm1aW8vxUarQZWq8qX5p27o1H0-mXAF3XRpnEBq6KW4tSHRSeAxq9UBENpkF3WVSxyc0XcFODQIE9lYKnqeGsiky7xh0a2FfFM77PSrZ3M5NdKpw2Oa8Nj07+SRNdn5TddnsxuV5osk+adpQEwOVrRYn2dOVLUoKVOQyzi6pdEak8bLvPlnL5VEelhmNIlXWzctmktNU5oUpa7nldciiVOM80yzNVZU3zXnvPVktDm+tRunDU6rdVeq-VG3cNVGrjVi9OsyCUZs9LBpK9werHYNLr1J6Vtaklvetrb0vz0V4ep2VSVFnYq09ryjPf3pLrZ6-ZPys9aSrJZm766X9Q2tPpNpz6hqI1Z3QiFgjv7jmU+42rPsGoL7ndy+gzavvr43Zy9XUgPQcqPFV7jlNemFSpzhWR6EV0e5XTAlV13LT9GB4WYtMv3LSddN+tVT+IH2G6h9uexWfnrH3v0gDk++GojRbro1Ma2NXGlAe91TliMCBc6d5kD3IGt9KWnffLqOqK7EVGrLDSmvj0Fbd9zm-bfpLIPX7e9Jkqg-frlnfK1aAc0fWzzf3OMP9TdNg6jQ4N20HangAA8we-qsGkaZhm2pwftrcHdNnukXRBOOn18ou9M0NYzJEMnzmxZs6zQrtGnzDE1h+2PThNRUn701Shkgwdqv3-TJxGh6WVoZbk6HT1LZP5WDSYNGHgDRtGfabTOLm1La1tW2lwcdquGtxXK0vU5RMEIEDZvh-xcfJNn5a5dZ+tHXZptkOaFDEho+sobSXZ1yD6hqWXp2oPebH9uh9udkcDyGGjmLBr-WAeKMW1LiVtcwxUasOAG8jCx0A0UZKOrGyjThywzwY8Ni7u0sBzfQEYGlBHWxNm0I+hoP0x7ZDce6I7hodmPKu9iRlVckdGMbTCVRu4ffQf0OiDx9fjEw-Ydbrt1O63dXuicc2V8GoicO0UOCtFaQqkd4hjo-vvjKYaVdKK2Fr0Y6N46hjah1VX3s0MlSH9rcqY78oYMGGbaH9CfbYd-qQn-60J0BtYe2NMnTDLJjul3VAZBMNsEDQzGE2cwRN4G0TJBnE0WwJN0G2+FJp6W3xeGM5s28zdvpuOxTBGpTTo64IK7YS1TqwxPZqdaZEnumUjbHrIwaqDNhmyjSqmow0YZppmOjPRvMyaGLNHFJjVNmswsZQVtmuzEfS-rZ6gnjDZxU5l4x8aHEwTZxAJgKeKYhNhT4TOBlExibINpTaDJJnKewYKmwMJglU9Lv1PBLWxRpphtqdwEY71t+Zgk80yEbFmTTOHM0zIwGb0gFG3+G07mztNTMZmzphZvS3dMrNPT6zTZj6esb+asjtJ0QXMcZOw1Qz5zCM8GYCYcn5jrjdxmGd8ZznDigTYJqznjOinEzCDSU-EzTPJNMzIJeAt2lzMoGQ9d0hSRfM7RFmnp2BhEW4PLNiGvB7x288U2rPn7G9Kh5UKad6YNm5GTZoZi2dGa2m3lkzB052bmbdmlmHpsxt6asY7MRzwNAMyCdyOLmpzy5mc2cUuYRnrmMZoU1Ax3ORM9zsTA84kyPM4Mrs9fW+Wu376I7AjVmwsx+a1NYn8u1TPUy+YNNvnPcLTGs58YfR-npG-TQC3-2tOgW2z4F+01oydPQXXTPZ4xn2fgsbMtmw5klbqvHP0mbDmFs5uGZwuNs8LjKEQAucnMnMsLel3C2cXwtVGRJNR1OcnmPb19gSjRxA2Gv8OtHNttevo6KqwPirwjTx3E9hteMJ6eLcRxVaQeVXuyfjQMsY2ka+XgzqTz+jS1JjhPcq6jnpWzJcY8toHrzihkI2Kqb3+XcDwe4-W8bfkfGBjP81PUkYXX66s92hhK5kZQvJWOyngYgGmBeElJH1jKtqA1NWKPpqkpEbqHFDMKeFrg5ICKEQFpyEAdisGDMSwQ-xbcbLzUlfZ4dIz18fDrlvw8bMCWh72jRB+835Yw0RHnjUR-E+rrysi1KrKe4kzVbxWZ7xjlJjI+pck0BbcASSEZmaENwdQJrtAckMNa1SEhyQ41rYsKHJjIL4QGYoKMiAlQ7FYYEUW-OAA6CpXajDlpiouyyu7WrzaWu4wVbCPHWAreBvE2rsrka6Kr8Rn89Ve+O1WHrcVolcbv9MtXr8MmYIH6zlSUqnC6pPyN0GQV6oBy-+Aem4Y2VpXk8NGEEhOkPmomGL1xpi7FNxu+XCrBN4q7PVKshXyr9er8+U0pu3Xqb91u-RSYavarGbr1jspBRQCSBSF9aAgEOFPDIyUb9l4nGOxBJInLp21gJZGr2teXMTUhnAzIcCtyHgrlZ76USfFnua9dtNg2+kcasvXkLjjd+nYZboSCkw9twzSCQ8zb5MbHt7G+bMkP3Gst6rGJWdZJv3LBZ5N8KwkdUN3WPN5Jn2fFaNtAnULUmM3QndRpJ2ADLds4knZTswHM0IJf3b4uEM7Ws70K3K95cwPfmHj2Jk6-7ZePnXSbl1-oxTcGOh309lB1I5HbrsM2G7TNuOw1Q7tt1WTXdK0FjTdaHFVgeNZa4dNOPBTUsJ5zO9Xs9voHvpbFq5addVtB3Nd111zSSeivvKCVzcze4Cb0ON3Zj9J-e1CaPsn2z7mx8B4fYuJQPz7iOdRkxgzSJoUcp2dbIuxcyRzw0SbVjFS3kDKoOW07JbOnZzTUWXb9FubYxYLNy3oJWaGDv3YVv43Owa2yIxWYuvy6nMH4Rh8nuaKR8BoUC5gJvw7uMpDiIgQ4gZcVAgB+gLRPBVpuzalJtL7VRY0Ud-2L6Jql9PbD6msywMA0XbL0+NljRQd00UaAdFmg3zb56Wej3jibtfrN3mTYjiRwZZMuRmCj3+8A3-qX2X2vd19qctRa7QIF77qBx+6Pe9t5375OJom0Fbnsl3ttGtvh9rp-s039btd+m0A+mNjmAtrEGwJcUd3shWIDK+9XYHTBWtOrRadwMgDavs3u7nhwJydmCeXmR7ON-K8w8nsF37NqamIx3qutL2qrOtqKyk5rv-HaD-szJ8CZyN73mTOTvJxffd2C3qjJeh2x6QVObWB7SBoew-ezvBHc7eN9p6-ZntF2CDsRzvV-aSdV3w7qTkZznrGc0mJnoDgao+mme5PHd7d557M9qdi7OWIJFy+s7cubOQn2z24604nv52Dn0TgO7E8IPB2BLkV3FdXfXtpOATdB4Bzvcs6A6NxPj9w-CacrrYvSEtpoxCuluWbaHN5vfT7eb2E2Sr5csqw8oSch2XlIxmK38YAfpOUX4zkB9fkG2g6RtYAiHb8Ni3Q7X4XpXjsw3Yvu2tnzTlHaQLYtsPTrHD+ew9Nx2wv8duIp3jaKq1EjGBZO+1tdvX53amtQfWnXSPp0vbfRb23rSzpmPX5QxDUh-jh2f6EBX+goWZHGg9TAKzQrxYHe8OG0Ra+XPwmLfLzr6LUG94rlo1jaleLaZXFLvLnK8OcKu4nZN0fuqMSeHbp+6rk7baOq3avLtdWvVxSINfU6HtrWp7aa8Z09bY+bIrJ4HmqlSCZB3IHBQcAQA9KOM5Na7CoIjYodCMHqaJhGyHb9pbc-OGDvS2BKdovSYGF2yieumqmuLpL3ffQ3rY0ZOWJZ324XffucOu+-bBhrlm9INEvw-TxpCoH4EigzwyAAah5gwxMMF1nnd1L20uw8O9s9mGAGmkfDNuQuXbLHGdJjQndw0iAZRMCTscDasXwt1G8TjdVeknujThN2E4OsrvKXyt-A7Kp6eL3y72tlexQbJOIvrnkxpq8S2redyNF90EeUjJRlXr0ZmMlQrjI1kEyiZJMsmXUOA+ArQPbmPll6Vot-O3b4b4ewtuBe7O2nYLqJ9S56MbvYPDLnvaSZSOxWN7bL250lZNsEfhl162odR5ABNuW39meh0miaGdugcUaXtz6ltw+rDMGWYd-+90hMUzPk7wexK8BeRvWxC77d8u5fuCeVbNLtW3S+3xbul3u7rYfu5uuHuhwygfgKe-Pcz4r3hUm96uvvePhH3SbF92+5Q4UZyaqaWNN8T-cAfjbsdz7F3PmU6KeycymOb3J7KfPgpZn6jCnig+zuw9sH5z9PYhez3i70Lz+305uvoemXf9g3RMapO4f+tWtFWT9kGixAEQRiriZ5LoB878+ooBt32W5COSziRQhtbDlqFzeFvNpEr1OXK87NKv6J9U2S-lugvIndXoT109pel36XKrgZ-C8ufDPWXyL2T6OfucKeshA3oaMN9fVjeJvmEeqTN9y-xyCvxH+Oet6co7MvSvzoQxs5s9NOePdDvjwd66Ot63PH9suzlKVVU3Bnetm74PpudP6HvnLmYv19fCveRveqD7xmM7DTfug3cwr6PKtWDz-v2iwirT-oAOrp5zqsdq6vdVLyvVq8q7OvITZBoA1M5T0jF5DVbXmjaJmh9V8IKxqb5cHoq37fq9HOkPhpzNbL6JN5qx1wCidSXGLVQKVizQFABWugAIKOtMuZBQkFrU3qG1JSJtXf1wVfpzgBCjtcwu7XkL-r-amhUOvoXNh8146yAJOo9+Dq51vCwqQgCXVCKRF668RVuqkW7rlU+6+RQxmPUqLMvO3An4N6wBvf3JpPnyVN5wVU+Afui9yfT8MWvrP1Zin9ZYv-U2KgNA6EDU4vA2uKoNJSBhjOVrHbfJf+1wgihqI1oaBPR31z8J8Veq4e-ES1Jf0-I1ZLvUOS6jdQoKXjRilvvpjazhY01L2NvLAdFxqaW8bWliaE7oJq6VJoRNfS8Tan45GEeXvQ34nx5J4njeyfefn79T50UqbJlGm39CX4WWqblln+BGY53JqBp+0FDmC4vUGjFbcw-A7lfcgiXljWxxsO8GAJYGWsW9oB0EnHPNRDHb1lsyXdLm7Rt8TOVlcyzdhyq8RPEgWwCbuLLS1tBjbphgByiVECGB0kI92QAAAMhvVqVKgJms8VRjCnYTscNCuwdmL3CSY4mZNGWwxsY7AMwOwZljCYGWBxRjsduP-w3x+0EPB4wMsDNDgD48Jzn7RYGUzGgCXcRNHgCYNOjlmE6LBHWocZbOdyVcMsDllIC5fVbXwD5XQgOH8MBEgMzlazEpCoD2gGgOIBSQegKYDDVVgPih2AiNFswTsDNGsY+AsJjWZLcYQPDQfVDNC9wJA7Rg8xAPAvWQAS1WHDaAsAc4yPQ3gW0nmdhJFa2gNPDDbBnJIPSW2nc8zOwKfsC5WrypdB-E73c8zvJPTE9hjCT1+MPlW71GccfZq3k8ZifVVNRmAu9TpVurc1WZVuQfLy00P1RjzstU7GDhnJ2PcH3+dIfaDxadYfcgP79qgxD3b1E9MKxR8IrNHyu9b9THxoNsfRK1x80XXbiFEhtcLS+EotCUQm1odQNng5RfC6SocZ3dANMCu+aNwidtRJ8wIDXgpH2TditC7wJ0M3InTO0atXN3J183BrXYEi3I10e19+Gnm9EutJnUtcq3R7xmIJzM4k8BxHQ4hxoITaQVYgoxCR1jF80Z93U823L3A7cUOXTx7dWcAzwHdjPRdm4wzPehiF9HguYM48JfEwKl80uLzx3crAx4wQ9ibY5xx1eQ5dz3dBjAL2PdgvdVFC9L3bDEvpIvO9w9wH3HjDi962BLw-dkvb9zS9m3DL23sugz7B6DKVW9Tk0Bgop2fURggHQzEgfZPFb9DMFAJKCg9K4xJduQ85RjclbBX2O95DIgOa9UPZe0Zdmg5l1aCsfHD2kD7HMBwt0rdG2ht07dXAAd0ndcajjEbQ4nHtD+0Dvy5Cu-SoPdCBQz0JqDvQ+wJhcznbvSaDf7Oq0etDbLe1RcDQ1cWC1awhHFJCRNVt009KQrtz09aQ-tyM8h3JkMkk8GMdAq9HQ9ywjdofTANFC1nfj0O81goUOV8eLBz289-BPz2aJJQoLygAQvC93QxwvBUJXkovZUJi9VQ593VCOsRL0-cUvH91bBdQsMIG0Gw1+A0923bTypDu3fTw7DB3Ez27CaxIGCs8IfLj0ldhw+d1HD+Qqe0nCYnRr3TVZwvkPFCD3DYHoCT3GULXCNwt5UVCPcHcNi99w190PDNQr91S9f3c8MSCyWQvV+w2JTBVQAY5YpEB01PRsJvCKQu8NbCaQvt0M9nwxkJHcU8bxWiZ0wl0MzCdtP8KqDBQoCOFDE9UCLFDfPCUMgjAvaCPJBZQ9cPlD4IrcKVDUsXcKfd4vNCKS8MI08PS8LwrWnZ1HJZyRQAM+IHBUwlUT7wF0BbXIKvscXT2miYgYCd0ENkTazy-DbPH8LHsG9FYInDuIyF2AjkPVTha9v7C532CsPNoKOCevVnUkxm7SMLKMYw+3Ud1-9N3SMj-JXx1MjicPSAnc7wUFQ49xfYlzaMvbGr2zCAIlyIa9eI0K1OdPI8511sEXKTyRd2g44M6CsvGsLs5kwtzHowgYWYOsjPwzkLYiMo5+yyiOnbo1qC-ghoIu82vQMI696rKO3rsqwqqKDN8jVRx-0IDbxxyCYo7FxFt4ouAKBgEDFKKJdjA1qIqC3Qz4KV1cw9YO6dNggqL9D+nfqNLCI7MqP8i1I1-S0tOTT-V2Mporxxd0tjDCxUc7ozxw0dao5aKBgrI121Sj1o9KM2iEnLiN2ipwjYPyjenI6Na8Aw06Kuc-I0MJwi2eD6L0gyaJNFYj-omD3ajto6QzXdEfH0OR9nZVH0u8w7HyNKjsPbr0ui2eXQnatMQQgHbAniJ9V6tdQTrkRs2AVHmGtdUPfhBtJrf9gBxZrfgXmtksRa35shyYXRA9lnIGHeZqlVGM8sAY8l0xjV3Tp3zDE3Bew8iIYryOKjrvXyJDCyY+GNEEZMd6xxBPrHm1DAfrNVH+sV+IGxKVfrFlGXDkQJDApAueaG2ZU+oOGz6RmwZmORsJgpZ1Ts9IGUQJcxfNaJeDO-NqKzC5Y+D2BieI6cPVteoosK+N0fEqJZctY56x1iAtVmxxR2bRwlpwubUBR5trgNsCFihdPTVFjvYwEVWwPw+YNsiofZHR2dlJUOPl9sYofyViHIzW3QlIY8T2hiDgrryTiz-FcR1oO7Lu09jVrMXVLiXKMVyncnQ7K1CclgmuL2dVgnKKV9QYqOK2D8YnYMJjV7TDxJjYY7WO7itaBx25M27WCD7j6qRGINgXKJhyajy4lqLRip4nyzh8do+uO6jcY87xjjK7dWOJiE4w4Lhjt4xgymduTf+kAZgGeBzuBT7RBwHj8goePJoXKZKPZDfowOIzDg4raJnjnI8ONci8oxeMOjtgiuzhciYtew3jE46O2TiHnJ51-iAGIBnqgraY+yAToHN52IT-4shMATgEuZ2iiRYpjzFjVseAgg0pYnK2vjx7JyPh8j9HGILDfQjBLQ8oYoZ01iP4reP1CqomTBmd8nJEEKd6Ykp0tZqY2mPRRKnapxmBj4nNFWwVo6BIDiyg34PYjAYjqPBcvQwO0fjo4wqOLDknDH3ETO4-BK-jAzeO3edHdY+NHdO0ThMnic7aePHC+EyI3XdBEvGIv1ME3YOwT149+PsSRojl1ODd4iE1kSYHFxMYThYwuJYTi4smi9pPEoFxh8fE2+KxiFY8xMCSn4qxNji9gnBIiSnrBxKkTmJDFwc5QE3gwWovaFyjB9z4jkLSjpY9GJDjEEvxLfsBExuMJM+o0RNsTcEiRK7iqk-aSvCmw28N4x7wtsNoj6QrsMYjqxA2BuxR4myMvj2ktLX4ixw3JPliuoxWKa8OIxdzAjBIiCOtspQlcJgiwvSSJ04EI6L2QiFI99yUiTwnULM8CE6-Frdapb7xSgJkiiK09pk6iMfC6IhkNM9JJdhLCZMkuz1iktk-8M6iEfBuIOSfuP8PAj-PYSPOTVwq5OvdpIxCNkj7kg8MeTjw7UKwjXkxxP+U6kvxwWo0mA2GXYIU+yPCcuku+PySoXE53BjhE-0LbixE4ZMiTKw6JOrCVZXL1RBkZX1gpUKPHGVVkaPYmVJl+RRGMi4lqM+J+j9Ei80WDvEm+N4SGUvZIKS+k0TwGT2UoZPKSKwjJzuc8fbL0I8VPdWQpUyI68PJC-knTwfD2woFIWSzPdRiWpigwlyls-ojZJR1OIkxJc89o073idPPI5IEj9tBcOUolw0SLPdYI65JlpbkpCL3CHko8K1DMIs8OJSxkoZU0Ux5AeUGRahJn3Rgfkq1JbDqQwFPmSXwxZLJpG+AcIBdK4jE3K4vU2uI9D74-ZJAikUk5JRSzk5cPRS5QzFLdxtwnFLjS8UhNOUiXkvUNGi0-E1IL8GfNCmIiHCEZR0VdI9m31QyUuKLqj0uJakkkaUquN48ck1VLyT1UplPciFVVlOOjBk+OODCRkypJHTz-LkUv9M-a-xz9+dB-0p8VvUtkW8h5Wb3o15vZ9LW9F0haOXTR3ZbVdTSgxVPKCOkhBN8S1UuFIfjCkyxNViiouOI1jOUipKiTDU04PT8ifd71v8DIh9PHTe5VlRnTAfb9OY8lqMtO2T5Ut1NgSNokDOMS60nMIbSNUhFOgzD01uJLCOUvVOGjuU5DN5SL-Qnyv90M4AC8l7-L5OwyafceSzShMnRRzSWfJ1Tox2feeTdUPVZeW9VfVDeQO4t5TmB3lyad5hZCy41pPdSuEqERl941b1IH9fUuoP9SDM7NQu8NfDtS19-fHXwgU9fGBUN9K1RBTN8a1NBQwUbfZlTt9W1UZid8mFQtTIVSwXtUD9tSYdVFBR1Z3wCzWFAoBnUuFdDB4UF1MP0EUV1SPzEVN1SRR3U91ORUPUk-ZRQCjrXfHy4yM-LP1G8MMgTIp8xMxn1fUP-cTLL8lFL9XMVf1KxQA1bFOv0cUwNFxUg13FEpHJpR3Yym0yYEgxKDiZY0fyRNymKJXAz+E+FPTVRs-wVI1lKSf0o1clOfzMIilBjWd9ylFfyqU1-OpU39GlHjRaV+Nff06VhNUTX6USUqTFQyeM7PzKzc-QTN+9lNRZW-9VlFADwzHsr-zf81CAjNYT+s7ljZCWkwbKAzDE+BKoz6UndIgzG0-dOIMYM6xO8iyk09K5SDUuTyqijQvoNNCH1c0KU050kiLGCOVPNObCqIwtLtTi0hiMdTx6Ypn+zSMwDLQDhsyjIDTHPbZO3TdkiHLoym0wNJ89g0oSLbTw08SLgibkrFLuS+01CPxTE0lSOwiLswPFRzZNWlQxyn1LHKnSSka0O9cwtEATFF+XQN2lEScbxSWTUA50KvjpXFNzwDvg2wOBzNUorRh4iTIEOtFM3TVxJ1l+cEN1d5MfVyp03RWEJLd4QhkVe1BBAMV68yWRGKWSs0JanXTq0jGLBzmcqbMgyzcoROXiQk1eIw9JPVjMAd2XDjOkTlE8p0GCUAVoEZjPCd2IkRsYYa1oAF+ZsAQwNuB9H5j0EQWP9z2EsKQrSFg4DO4THIluO6TDnAJKjygkg7zVi4Mt+IRzEM9jORyduUMWxggQLJHOBzCA+MSS7CMEAYCmA4fNHBR88fL3j6qSfMYCZ8kfIsIF8iEz-jSE8hIQdPAZfOnyOQNfLHzlHEA0KN7ojR0nyHkcUHOA8Qf3O0T1GYPN29lYnhKbzJs-xN6T6MpeOCSREnVJPT-7PBKQz+81+iUA7XIIAdc58p1zf5mwGmHQAHkW-O+zvYp1OS9H8jAOfzG8qPTDjaMvdIOiWUmPJ-zmM3VJ7z9U5PKAKVxNaHVhlwEQBoBYKOgHgo+5apHcC-4WUFf4VgPkCtgOJOAv9yyaKjBQK3gzKOozso5BNyjI4jzy-yO82DNKTwkogrYykck4OrClAa4CRs1NXUmABoQQgGHBvsYICDhCAdOI3yW6eJM4KECmAw0yptZpKpzx4ocI3TsklVNfzwciPMhycClD0YzO8yQoTzpCpPPu9KonbgULqkFgtUKM8rPJGYQARGXjZBeUcH4B+BPQtbt36H7DW4Qik4GQAoi-S1oSd8yhPPtvsPoGmB6AFACejTLU-I8d59B6JqzCKbHKVQ1MAKDABDC2aOYTJg4wsDQfaP2NWiyMobLgSZY-byZzMCxlLcjHClWOcKJCsJLcL-8s9MAK5CqqJ8KlCvwrpjGVQIrgwVEp-nCKoASIsPiGqWIu1B4i8kCSKt8gBIoSGEjIpRhWwWGFyK3HSaLejndYosnS9IvMTbAKiqoqYSUk2os8NtBPBjdReC10NBywMuwvfzpsqHObiXZOPPa8ywumzu8OgvDzRDPsFQERj95bQVWTmotpL0zq4mwowK64rotQTRC9BLwK2Uggr-zOvXvNkKvC-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-GbsTiyMwCYLiR3VnRIW-PysJqBMlCGYkHE7jdRk0fbAZZjGD3FpYImCNlYw4AgNBMdWwYAmDQ3MAnBSxU8W1qhFu2Bhh4dBKibM+Kek74sT10O2SK7rr0ebKzobQO2KtBkFIrHULkAddqCByQDMTFB0EDDAHREszNAQAs0JhjIx4AN3DdVFFHtGbc6MAzDHZe2flhu49UXln2wH2r7StAO6XAH8x2QK0DWLQiotCtBcAP0hqQN8ADq9oUOSllA6u0Z9ycxIOsPy84KMN1Dg72MELictWCVDp14COzDr79B2wRr9SR2uzoHQ5swYzI74QCjtYBZ0ajto71UBjuSxmOqNNZIICZzA46xCbjq9oN8RQX5ZnVITq9oulJJg-BxO5NFLBp6r7Eag5QF4l+tQoWjq1RYcW33ZjOuBUjlQlSEpXYVZQUiGm4woD6ywV-2pJW07gOpRS6wwOgzs06oOkztg7jMCzsQ7hWxqMPq686WrQ6z2wjoc7m8xX1bz6M1zqI7z2G6087kAbzqo7+Bfzvo6ueRjpDhgu1jvC6e0SLuMxouvjri7BOhhkS7ROlLo7A0uqTvRcS8pDAfRPCTfjex7Y9iWuBKupRngVfCCNka6gO3Tta79OiDtnZjOmDrM6euhDo2tq6mztbEZu8brfzcOpUvTUoe8f3m76ALzso7fOlbogAJEALvW6gu9DBY7Q-Njoi6uO-bt47YugTvEVhOpLrE6LuyToy6IKa4GgoaCugpzjrADgFQppkVBShwswab2ABnXJUhmRRwAYG-x0MYIC2Bf+U4DMBEhYmCDghQUcDiLQiytmrZRwddrIB+2OUhYx6GPVEWw+Mf9y3kh2PVGHMNsJoSYx4GCQhPi1sFLDg02m7huG6QlI9h4cEo6HtLNsWu5txaeLZ9nt6A0dzv6cGwMVGYBH+PrjAIG1ckCW60etmxmBlGY0nRBwhKAFRAlGNUA7BekAHG6BFGEHC8R2AZBUKkB0czB2YRNNpWowmhTlhXVd1G7i9xn3JAENYOSJJkYwfVK7q+wq0JtXmB+kFYiCAswYgA7BdSYv1GYGFarMj6rhGPrj6RMX-GWxDMWlgYxg0bjB0Ye0L1A3wVWcbGcxXFdLigoxNZ9ykDzeztFM0hq5BoMqHpbtAy5tBMbLCpsOhUth6pqqON36Msffq96brH3r6Ap-WQByUiIuVEW7Ue6jrTjw+jwmIAGOiL3dQvUH1D9QA0INBDQNmcNEjRo0axQTQk0FNDTQYg7ZQy6zdK0ETFPAWdDuAkwN9tU7-McpuoAEAM4lEArQKQE8ZIFF+BEBZ0aNBg4IATxjdYEAUZX6BkaAak8YdiN1nGwBqBAAGoPUWdGpBlES4gzYdIO4BABGUAmBV7sGJKN0xg0U7F0Y-UM6WmwQuHZl7RtGOljdUSMW3CDV2GvFxdssAetsbaq2wttratYBtv4lqAFttLw22jtqoZu2nGypSe0BjEd61WdQdLbIcQu2rai2utrsHy2gwdbb22pwi7bP8iwZ7RNhfbRI6LWf3ozyLVAoABwpAQpTaA9+b9psJ21JhQ7AoMQqSBx62Y9TOxM2XTDL4WMLbCaF52NfDnx+2jfG5ZWwWvotTJkyiP+SicuZM7CS0szySVdIFVgdCAMzRvrrtGzd3Zz7W4zMdbnO38LaHkUxcNRT20y5M7SIvAXNjT5I-tPQjnkolOHSeU1PIGphAEwjkd0AEqAGQ+gZgBnYpAf+FAAiAIa3RlSIaAG1AoAEod+SC021MqH6IkFIQJtEkTQh6oU2tIAr8KwBoiqR26FN6HQ0-oZ5zI0rtNvdsUlULGHhcgdMmHk06YZTzTdMB2faLaVAYkchqYyy2HCAMgA9xI2LrGfA41KNC7ZvUGDmfBxsffuIwh2cxl7ZjMdNke43mbxRuHMA9bDMw+WdocAiUEp4fndyRoNEpG5a40jkdVIG2PR5-QEwhkYjyVyBxIplNzEMBWAF7DjqIofYlRBYQNgAQBHiU4Rnw4BBdTjRXmIxxQZ-3eNki540aEqzQ9UD3DHQDuGBiwZocNZm9oMuxHDGwE2xbFjRX3fbBMFIuXpS7YBWdbC7ZI2EwQ5rfUfyrpk6h3ZXOaq0lofK4CcDljCUYU-RrRauEnHV9HC+tPDlqQ+1-v2KcAFmOp0Z2zPtXVO0H1HACA0SOUPC4O47BMFOWX1GVGTuD1R4cc0WnsfQBWt5FpxQigZFFQQAEmXNwRgWZRtZYoEYBkYgQSMY4AQQdCEZ7eQZnsMBWe9IAQhUQS1mOAagLYByQZUDUE8Jri5DBhxfCE0fkAzR3THjQqWYpjCZEvO0ZDwI2Y9h3MXR2ofqKvaA+tRbgykavndQx-0Z6aom+5qjib5P0aSV0a38xw4WxsUGjHZQZUGnbDcBMd7Ykx-lic5Ux+lhC4MxrtDOk+WHZl-658LFALHa+mTCfbXozEOxDNm1Gm2boxYkONHtsWccjZ5xy0aXGbR5zCcEHRjcedHGw+AlpkvaAbv3GYa70ah5jx68dPGkRQxr4iKJ8MYjq7xl-u61Hx2MZfHQwN8fsxU2T8f9Q+MH8fkBjMTMYAmcx4CfzGg0YodqbYWr0vhblG8Lm8VLPT0ePqoU9sp2SIyyWuRr+mvFoty4molteas3cZrJartKZpsaqWzMqyb5mgFqWaXGlZuZt+QVFJmQA+sHCVR52ptuyC363KrATgpEUzqHzBTfvFb0WyVqpG54qbuZScG0BqsrlWj1qBLyo9VtODbXe-jAL5il-igKUAbdAKBP+aAFOAVAOUkgBIbUAA8kcUf9kKRQAVQsRkOoJDF9Z4oX9GBtfm0UCkBX8NsF-RzgGAouBoAdWERlRlU3wnGLgSjq1A4QUZXVhme3qboB+pmzPYA3Md5FXa6AdWH0AHAGcGkBNiI4FCBgAFKFgauObQTqGSMrhqG7+K3hrQahKgRovqnWq+tCnoqpVtuqYYgAr7zXS-aWIx7FaZnXxhFaCV6VPUbBnGwfVNTMTROMYplsxSMKNF0Zj0EHy9omKMwq2mTSnhpCUbuPSGWxuK8bP2cHWiOMvr-U+ZjdRomf9yv6yNAdSo00wGdscaZGR7op0ggeEErHRwbUC8yMMQ1gcRCpDfDC7lsEzBYxou+xSxQ9IJzh7RvUeQHnYGWHoSnYlsT0gy6daS4jjDXdLzgnRbp2Noem3VN3CBwNGNfG2wPcDZl3UlFOAS7RzGAnHsU6h8ehi9SR3fWRmoZtGeVY4ZjoYRmjppGchnUZ6IkR6MZukCxm+yJ8gWaTKaxsJmS2EABJnCAMmfQwKZhdWpnM0WmeAJ6Zt1UZn7MbUdZmUOb1C08uZ2NBwY+Z9+iTBBZ1+FvRRZ+6Y2xHpyWZemZZ96flmvppWd+nVZ49BF962AbKlKgxlBtikdZs2esGyqzBoqr6g0uehn0ZhbMxmS2m2f4I7Z-GbHLBkYmdJmjcD2apnnMb2Y6xfZ1bH9nNR5mag4UukOY5ntsRNAjneZiXK5cE5t6dMUnpqWdenZZj6YVnvp5Wb+m1Z-OfM9RWwHJCb-JkudNna5-Welah22kZ37j5tGYtn65q2cbmcZlufJabtR2Y7nXZruf7RPZ3ueKZ+5rEYZnh5oObHn2ZsOanmeZ8CaLR0APtQ3aYsgdVdiUAV+a8yxucLOIA2J8kCP5ksRBZYAdic8DIp558WaXnU5t6blnPpxWZ+mVZ-6d3nzPRBr0qt+w8cvmUZk+ewEj+iucmqLqt3qvnzZkjUGNyNa2YfnGdVuaMmX5jYBdm3Z7ubUYv5n2d-mh5pmYAW2Z0Oc5mQFyOdnmvtOYgdm5SM1G9FHZzuZVAOweACD7fwcmEGRghhBeSFieGRn64j+b7EQWyAXBaTmJZ56elnCFtecznSFredzmJ3GDi1m6F3WZhnD+g2epHhCxGZHaa56+c4WJ-BudYhsZ22b4Wn59fiJmhFrRfJmP5nuZpmf5v2eKZ-5lmcAW5Fyee5nFF1NIvVb+R-mahRwSIpjnqQKYqGDyQA-NvybFxeZTmHF1eYzmSFzeZznzPdhKDRPFkf3YXy5iapP7WFs-u6Wb5rOm4X75qJZyb+FiluG44l52YSX3ZpJbEWUlumcHn0l6RcyXZFiefDnQFjLpAKsUDBdHByl0cCkBEigWYOXGwCnyyRPWIxaqWmAmpYNgxZ2xfwWGl9OeIWN57OfIX62bRPg5OlvvGCWfF01j8Wgpj-JmzBl0JZusRliJabnUF6JcMnJlwRZmW35mfFEXwLcRdSXllgOZHng5oBfkXclmefyWyWHZcqaTFq5e6nWAIaZXy9iaxbuXE5upfsWV555fXms5she3mHgxd2+Xu-bpdPnHOw6a6GvFsuaGWLWcFciXm56FbzcBF9ufiWEVxJcpmFlvuaWW-51ZdHn1l4BZxXa+glYwXiViNvhBqlxHDWYi+w1i3kICHtx4x91I9kUFJ+w1kjlTMOAW40v1cz3eZ7Ql2wFBilQAF4NwAAAdhUTlJXWfuUwAxsFYFpSfl+3uIwczY6h7cz5pztMyglwNZIw-B+IwCHc1IRwSm4xp8jVAOodoHqnOuCyiY0BovlmmY2WNZh7QbMbNA2ZyaEPFIw7l+QB9V-3JKN-GwuVVaoAfep4SyQ6pYlfOXtV2peTnaVtOaIWGVlxdaXF3cz0e42VnnF+Welh4crnh27WZBX-BrhfCWhVqFfGWYlikWmXhF9+elXkVxZYHn5VwObWXx55Venm61ywF2WiVksY50UANtapWF5jteXmu1pxeaW3l5lcGElWRofaavR1At5WGF0aSYXellvKBWElKddjWZ1u+YhXeFhdZhXn58VfhWRF+ZfXXZVzdakXt1xVd3XsV-de2WqALADyRriqb0tJuQAHA4A+5E9fPW7py9bsXr1xxaaXXlpldzml2TQSHXq6jlcYWAVmVuCm-1+hZCXp1sJaA2513GdgwJl8DeXXZlpFcJqUVuVfg2MVrJY2WFF3FceqtaaIEMBG1ltew3cN-DblzBW9tZI2CFxpZeXGV1xdwYVkliN8mWyiVqPnWNv5eFwv1sdZYWsGjzxHX+V3NVnXIV7jf4FeN2JadmV1xFeg2hNjdckWVlhDcxXslzZbyXpNv3MDRo2oja7R42+QCQAule0dTap2eL0zbEOapTqGleANHzbtB4toiW9B1wa0Ga2lGF0HG25tvcGTBrwZxte28doHaJusxKs2bSsrf7abxrpixQp2rjbVB52joCXbuJGwlXaUAdds3aN8N+EKld2xkIPaB0fBxPbomQ1ky5L2592vacxu9oQBa+vlKf8BU0j2FSsZPJCo8KVQmQlSBp1mB-awcGoQY9zWkyJ-S6hvTfYTaN94pUnv1ybt-XLqkRtmqzpgaMBLpPNVoW2TUpTz5bzUiSc9L-XaSf8bwuJ7iWixXEia0a3194PCb7h1h1uaD54Mc0nreExp0nRmklv0mLtT5vA3C3DMqnKzJ2ltyarJwKJhaftxRr8ammlPBS2gmowL8nsKpSYh3Qq2N2h2i57GwGatJp5uSCRmjV2J1ztB0QhCxVjHZqmaWxEK9zmdVEJfKZMSUPsn4hMgGQ4vUd1GWwVmf1GfYvcYpnYwYvC1YgD9MeXd3Ulk6jZ8m-aEHeaGwdhwUyxyaAMfp2DxoVRjKp2Ii3q3kAXnj5E8p0BRKUUhUUCNqzheQVHB7d3yD77jUrkRKFchfIVxyxwE4B-RxvFcvRBGwX-Cl26MbBgZZMGKdiPZFd3IZV2fVNXZRwNd3jAi49NoWop3DNw+dDLLdkUxN3nemHcniLdo3ZjWYci1lt2QhD3cd3DhF3fiF3dpyc93o+w0MvVahAPdf56QDgBD222L2EbAD8lcLZVtNQPa72e96jjD2CdsHV+2lG-7dOlH14ESt7tp0WoNzMWiJsDGzd7HTh3MRFnatzdJ23M52dXB2cpFDXUydLdzJnJucafckhsvV0NzDayR0wPEFggSAA1rZaOWzGj2BvtqfaJ3GmzXPqKwmRovh0mhi5rInLeGnau3rAovYZ3mnJnfh3tJqgT32OdsELR3ncn5rsb3chxrtnL9+cpka0hIrNe8G9gTNvzI9mXZj35d+PYDRE9uAOT3AA1PanZNd3ZVFdVsEEgUnwZ+zy84y9wvaRqfgjSYeb8943aJMq9shSb3a9zsHr3zhD3a93JMbMVzFeRHPm3RG9jsE2IiDyOWl3o9uXbj2TBCg+V2qD5VBoPWwOg-T2mInjmB3s9kWtbLpXPg7PiaSiA64OTcng4vH2Dq3YEO9hGvb76pO13Zz4JDlvakPCxWQ4SEvDp3YpXiDtQ9j2FdrQ8NYdDlPf0Oe3Qw+rEC9xfbBmbetg8sPODtSe4PRa0vacOLvQQ87JFDkQ+d2lFjw-8Om9yQ+kO8xBvfiB-QGeiJIgjlQ6j3Zd0I-IOldiI9V29DtPerFA8sJj3HTD4ve373glI6om+mjI97KUj5w7t3hDtw7EO3dgI6A5PsMo78PJYYACqPA4bdBEx4QZQ8jZ6j0g40OE97Q9aPByaI-oPSdnjmImejqA-9WSBAY6xbbDnFvsOPPdLlGPsjlw4mPo+9w4b2Zj1IXmOKjpY4OHc+BIBfwVMBITcONj1Q4aOyDzQ+aOk93Q4OP2j3ZQb4SMFg6SOlJq47X3Td0ie4sHDx45Z2cj1w9eOpjzw5KPvDr4-OFKj34+3RMANzBBOtj9Q7CPITyI7aODDjo9gEPEhI6wri5vPY4PBjqWruP6gh444Oxj6vZePAj-E+KPFD0o98Pvj5Y5KX9hihVvzP9hRt8af9ybV3KJAlFrOON9y5tR0uT9SeGOHm2Jp322dm3MQORysDZQOZm6lunKBd2cqF38m6sOJO3dpIVePb8zB3Tae0ARQdxt8SDmEUk2NTMPV2wN1xSzo0OAUdsl2AEQu3mWX1CzRUsQKaY3btniy9xIzjlnomWdkQDuxgcTDdCLLfFBcRWPUT2fpYDMV5icwdFreXsUehL2kOwhNPlgYZbMNfF5YbuUjCk2ZhnbntOCTvI7lOReD0q-3FTjXOVPBhQNhMOgD19b4Lzc2EVRPIDjU9fMHD-U4Jbhml5qR29Ju3NR3F1ylpP2sds-Zx2sDq1xwPuQEYDKEsZYQDQpQAAUQ7Oqy+pvVy6y5U6XZwU1k+GqLj0A9X3Id7LTRPQds8RgPt9mc+ebEd9neHKJm00++bzT0-Y9yrTulrnKtzosspWiNvBfqW6V7tecWWl8hZu5l2GVILneK3o9oWulkzdHWMGyzarmTZzC9s3f5ezZA2kQ5zaXXXNgTY82ZaL2e-mRNnzbE2lV5Da2WlF1vdv4G184FHBm1kscYAW1xtzdRPUb1F9QeJwAdDQQBqNG-d40aZkgHU0C7CzQleFdIaVKc4tArjt0GtEuA84mIEbRm0NLVPRoONztyJR0cdC5XHhwJe1nLBvtDc6CLiRCfQX0e2e8I-0VqFkAgMEDDAxHL033a4ZGMsqZ4UMRmPKU+cmWgIwiMEjDIwTBSjGoxaMejEYxmMVjD6FOMbQVC4c2PFYRj6sivwsU-1axUA0M2NrNA1nFCDTcV-ehS8i5ztgzbMOjNsl1mzOVyrfOrqtpGYI1UNSy+UAB1O-pn8aNefzWzYhspUwwtsrRx2yONPbO41mlPjTaVjsoTSP8zs0-0SvdY2yY+RM+PYTW5PCTxDQx2YswjVAOARlCtBVgUIabbMkdVDQW4EfUD4vf+wS4AHg0ES4jQxL8Ackvk0aS5gG5L2AVUbycJS4VEVL2tHUuG0JtDpydL8y-vMDLxjfPmTLnfrMvz0OuazprL0AFfRHuuy5agfIVy+AxQMcDDcvoMDy4j5E227uVBUMJjT8vWSAK7EVSMcjFCuaMMLiSjIrvBzYwOMLjHiu3tq9Nf45NkAGG8uL4ld92yhfIS1BugBAG7ltQHFHhAKsxm78O-4KAFZv2b5lQz7kr79VSvmsmv0yv7FdrJyum-brK1y5L0d3DPyrhjbDXuViNe1nar3v3qvFs6fyo0Wr1bPo12rxsE2zKlbq7Y1dshpX6ud-I7I6URrnpRP9ih1abqj7QyLkt7n163p2mTyirZh6f1vDuEbZu-ArvLu8+qqgaix9YGmvVSUpAigQoMwHRgDrgS--7A0E6+AGzrsAbjQIBq6+gHM0bZVZwVk5bH7C-aR676lnrtS-rRNLj68Bu9Lvch+vVb4y+NnI1s9AsvQV5olBuQAcG+95Ib-9HhvYbly4gwhmRG9gxPL0vLRufLzDExvzcbG6DXgryJjCvCbhjCYwSbmK-JveMBK6C3lZLjLYu6blTe2BiV69IRBedcrK-an-Qih7Ju5XbZiG3s0++iGEAMgHju-+oS+Tuw0VO-EuM7qAZkuc7v7Mi4zCou8bES7utA0v3r7S8rvvr8dFrvx1i+ZH9gH4G4tZW79u+YFO7hy6cu4b1y8gwB7-gSHvUbiRHRvfLkLonuzuHG+nv8b8K6JuF7ljFJvYr7jBXvKb572puZrWm6uXuLk9b3uD7u7IqyHs0+7FHSFPuXpBwSAHBclyZO+6Ouk7oAafvQBl+8uu37m65JwKc3O4evlUZS+rQXrsu8AfkNKB-0vQHoy-Af-ryB8bvZuuNeVBYH2y9aB3-Lu5hvnL+G9QeYMdB+RuvLke83asMBdUnugrvG6owCbujBIeor8h+Xu+Mah++xN7hh93vuMzPxYf70+7OPvLQ2QD5b2US1SbML7yrIieonrh-kYbCI4fzTCc04bpCqh0nOBIOsaR-b9irtC7vPDkhnJjO-r+u+6GSn14azow06ULEjPh4Ye7SZI34bVD-hiYcJSgR4ocEfE74S5TuxHi68TRM79+6V5OjmR7kfIfP+9evy7oB90eRKGu80ecLidYBuZn+q8MeIb4x-svobpB97uEbqx7gwbH4e6wfR7hx8z78Hqe5cfZ79x-nvPHpe7iuqHjLoJ9-H+m6YegnhEFKKPJQ+5m8n0ypptJ+RL55fTb7n-oTuH7kR9Eu07iS4GfJH7O+GfhnuVJ-vzNCZ+UetL1R5mf1Hwy8quTMnqM+ugblZ+fQwbox9mVTHrZ4sf+73Z4wfkMOx4xvcH4xCcfcbkK9cfiHq58Xv2MCh4pv7nje5put7qhp3vnn4rLefMMsJ8L83n84refJ9hU4aaez6HV90i8NU8HPFJ0MrAPrDqHfHP0T186329tD89Z25z78-ealzv85XOYQwC4wOLJ+lrx2HKgF-4v77465Bfn7-p6kus72S+kfYBaCXUbC7+R6evFH0u4AekX23pRfq7jR-RfOh9W6WfdLvR8GNVnju-WeobgDGQAe74l-cvB7-Z8wfFSex-HvqX05+ce6Xi54ivSH6K+ZfvH1e6bPL0mh8eft7xh+3vvsYrNvTbs0J7Yfwn3DPifI5c18Ovunx+9BfxHiF+uuoX6R8GEH8wtDhfpdBF69eK73147E5ngN6NmeVnR5DfoHh9HDf4HyN8JeY38x5QeSXpG5u7yXw55TeqX-DHTfaXme7cfs3657zfbnnx7Zeqbkt65ey3rl4re0Mm7L4y7-Vh6PvC-HNPOKJMrp+BfTrvp-TuJHzt4detzR17GeFHsAFUv-7t6+9fWxLF6rvR3-159ubtv27P6oHnF5su1ngl8Qel35B77v436x-XfvLrd8cfd3wh-pe574m7Iebnyh9PfmL3A-PeOXgJ55fb30rPvf+X2t+ffqst7Ov8m3oF6tfP386+-eO3+15zvaZRxUA-3X4D6Ueh36Z+nfUX36-DXMXxD+bvlKOd8dEEHzZ-Q-tnyx7XeUbjd+TfKX-D80YznzN4PePHpl7JuT3gt5BGi3vx5o+nn8t73uq3xj4+fKfB7Jf8llT7POLnP57N-8nbnjlFcdx8M7lL-6g6brvJ3rVJZ2ToljIfLXto0bdUY0GjG4xNBSOWfBWMETW2w6MNXtbB+3axh9RtBOjGGeG+WmSoWxWnPap2yXHtjgCCcKyMVfAvrR-KeY1QzDK-zMa3Y2J7MtMQoVKm2QFZI6H71gix0wfYf4BN24NFNu3lENEivE0bUYzQI0Clhu4fVYdjQ5IrvljC4rFRNDFsixlIPhBUp8wja+Ovp4S6-lpuwkcz4QI3y7JmwfoH-Yv8ZvqgwjgQdSwXGwa4vGxjfTJDJ56zHcE64IoCnV-xov2zGEH4v3THAJkvlHFYw42KDiUGdmLL5S7hXVnFgEXigp-OPOm1XFK+MsBr6Biyn4L+l86vhH-VeK9+Nd8hmvu1HJBNv83E6-VIbr8VBlj-r6cwF1Yb6YxRvpznG+x0FZh4csULrFm+mMeb+O7aWEXFr7QxVKc8DAvH7Bx5AcYHGQxtGVEAzOTgS33MJsZVho+-Yv+djiYfvpL6TZ-vtL6B+GR5NDdQwf4Z8GFA6926X3zDnXnh-yv0p5k+LEg34a-1fBNZLVcfvrlZgtvobnzwev0n8RXyfwqUp+0OcdE0YJv+n+m+mfpRRZ-578RXZ-lvyj4+iwmJXjFKBu0GbZO+j-gsfPYU6r5R-o8xVrEbwKyKZe3opsBbF2+gMpHrGgca4BD-8GHtD8+-6s+qq+FniB5C+NXsL8IKQ7yL8o-QxW-aWP791yCP5u5HqbxR+p8lfgKjt2KJO2wmSH4j-DymhaKfLtyr7j+y-7R4r-Mft1oinnt86M-iJrqTFk26HptZJWwAIacYBBpvFGb+jgVv9JX2-9WG1WvP1U-rOi-saoC+x-vpequR2qKr+Kq-jUs9bQ7yj9k2ihEEmotw2nf83++p+1SP+-SjllP+t08aoWbS-64Xa-4gNU6bJ-d1qz-e6rnpQt5AeXVb+ofVYwMLtCPuE1aj9c1Y+qYDrWrWzC2rG7ha-b2j7VJ1YoAN1YerfcDogBsA+rKgLAAYf5doKNbBrbAShreZ7AAxZ6QPfthBrcvYYJfR7pKBNZBDZrYGLKsbprTwiZrcpTZrfljsYG7j5rIdi79YtY6YMtb2KCtZrMHtzZoeQC1rIsZ2AJ-o4KPrhLHTM7KgRABM8PjK9cTwgWqRsBaLInjErKxba9PVYC+Q1YoAwzCmrFLpJKC1aYAoNZqZBlgk4HhxuAswqEA5ADEAvqSerbRDkAwjCUA6gHdoVgHRrM9gMA8d40jCf7d+WgHsAmPKcA5QDcAnDjZnFNb8AhYaCAhxhZrX+w5rMQG4jAtZSAljAyAkTRyA0QJVrJQE0cOjCc-S9RsXFf48XPsgUrCwEIAqwHIA41a2AtAEOAjAFWrZwE4A4zQPHcnBeAnwGNiPwFkA6gAUAv1aw-ANahAugGjSCIGwfKrYgA0y5TAuIHBJBIFNfRNYpAvgFprdIHEAIQGYYEQG5rcQF8sSQFFrQoGlrYoHeoUoGKAmtaVAjLqSYA-INgFm4r-G7BfJBoHwAqg4GrFoGIcNoFmrDoGWrLrDdA1wHpcUVxu4foH7gbwHurXwGkA71aBA8YGXNEIEkYMIEhraT5q3WT5LAmd6-yJIFdWXgG3aLYF78XYEE4bIGiAvNZHAwtYrqU4GIjctaXA6tbKAm4GUfO4FMBBsAv-Di6agBEBHLCnw6rDrBNAj4FGrL4F8sdoHZoToH-Am1aAgjirpcMVwDAiEFDAqEEBA31ZUAiYExAtEFIgsB7j-Gr4sAhEE5mbW6YgpNb8EVIG4gjNaZA4QGEgg4F5A44FkgktYUgkoGVrK4E0g2xyUfGTBqAzVCIwTQF9AMX46AmBgbcfQH0CIwEdaBFamAk9bmAt4GIA6wGtAvkE-AgUF-ArAEuA0sDpcCLiBVQtASgkgFerGUFBA+UHDrWIHhA5EFBfIN5qgtgHogrgHY-dYHYg+wh6gjIFgULIELqHIHEg-IEnA80GyAi4FWg6kEVA20EL-SXLVAmm61Ak9ZQtekAQXe5Y0rUjaabHtbwXNWYl9EnC1DFC7U5GH5wg+jafrTMHx-bME-Lf9bl2VYFEXMZYkXZc5TLci6SrOZZrrTzawbbzborGRZIbHJYobYP7ynHxrivC86SvBvgFVRE6e3Ng4KvQAFKvG44u9Hk7+pZVwGnLV5GnH84GTUVawrY-YGvNc5AXRza47K-YOVFWSY7WnRW2UsDcgWUBs3CCG5CTwIi-PuR87KCGpPAnLlDDJ5PhYFKvhftijgwMrQ-Cc4G7KHh3DWnZAA325w9EUI9DFtJ9DbnK1PCNIYpBp7fDQXJ-DDUJPJdp6qRM96wyPoAbEcIqPAfQBh7OZTcQqBS8Qx1BgACfb45KZI2pWZKZPc4Y4Q5diI-HX6JHO8G3DNoZI-Y35QZF4bUQt4a0Qi5J1PBiGbhRp4-DOSItPViEEpJNIcQuv5tgl-4AQTYghyISG+QESFogBgCivc8HnnBFqK8WAS71OVJ67YA5EQ+87XNMc7Pgwp6b7PU74tKf6fneA7znffZIHdcHjlEyaAQo14X7QFqmvHA4qyapA82DwgCQ2oTpQwgCZQ5yFngs85HNGSaK8QYTe1G85D-VME7aZSaj-dfYqvHqLvgjV677KKHGnX86-g9HbpNNA787YCGbnYXaxTKyGlsZAA2Q-kQ5QvKGVtAqFwtGfYk7Q1gk4WurlQynbsnedzVQx8FPnZV4vneqGPNRqGGnRMqktXV5tQs07xQzJrrnYC4gQ7A7gXNTaPLGC63rCjY6bB44zQ3jicNQf7zQ6P7srTC4VXOYFVXBYHvrNjYAbDjafAYDargvGaxQiDZubKVafzLzZpLA8E7rLFbHgpi4tgmyZZdeYBqgOdIeuS4A+gbIrQ2AGzEAM4hNqM4iWxMpDhmOqSi-U4Adcd7o9g6lZXrDTb0rOC73rFABAgmaF7zQuaEQ4c7DracEFWczbYXJgHl-F6HeLPMENXTjYObR+Z6vDcHwLVdZgwvcEQwjJaIbaGEBbRs7mfFcR6xMkDZsYKDNgDBZqLLmzsjdgBYocPo7XS77oIa76WLExZUBH9C-4c6HQXG9bkbbTatLMUEzQgr77zScEgHOjavQlW6MA8iGn9azaLgjgGAbP6FcbQWF7Qsi4iw9zY7gqi7CbODZ0XQ8HSwyTZgLAmEVLZ9Rkw4jYXQ82FabXtYIXINTBnJW6swhWzsw0v6cw6IEsw-C7yfYZYrg4VagbP2GE8fjZbgwTbBw8GForSWF+bCTYqrI0bjQqSaTQzXLwNG+QuvQwKyvVg7U7B86kQp8FpHOw66nKc5hQ0RoWsJqHavHaFc7R3J-g3nadQy07dQ5KGgQnA4nEBAbw0FPCGXJuHT7Ynatw0VzHsW8HL7DFoBQ2P61QtaEWJBqHhQzV5fnL8E6vKeFH7WeGzNeeGYHReGnQjVr0mBAaMoKwxe4W9Cbw7-YSvOvjzMGaFNldU51Qv8pana44Dw245Dw+44bQi+Hjw6+GTww-YEzf8HwQ9A7-NJKGWTJeFFlM3TIDViCeAeqDooHGgIgcwh3gVEAkIshGsNH+HdnS8H-wiLhnNOaFFfBaFdNI+F9wlaFBQ+2EYnaBHTnWBFbQsZqLnW+FII++EWnbHbHQnqG2nKqK-0BAa4ARGgcgcwh9ydr4gAbkDi9YADmEUiDmEH7AqIiwjZQpQoZQ8ABh7cwibgI-4yPZFrjgruFInUaoAA8-5nVDF4WJG-4ExO-7SVQhrp-IsZ6lWsJkAZ1BcgW1AogJ1BxwCyCWgB1AfAZ4DbofxH6AfUAFgf9jsIXDavAPiFiQrPLPACHBLDWOBugZ4B0IRmDMAeJElQRuAeAbIDoAEGBFgNJHCADJFIoWEAgwcfD5IhJHVCTpggwI9BlIjJGoIGOBkAH8DQQIAA). Basically, we can use `git blame -w -M -C --line-porcelain -L \u003cstart_line\u003e,\u003cend_line\u003e \u003cfilename\u003e` to get blame information for a given range within a file. We then parse that into a data-structure we want, expose it over a api, and bingu bangu.\n\n## Rendering blame data\n\n\u003cimg src=\"https://uploads.linear.app/c673c1e7-b101-47da-8292-2b1e718f3b0a/92bcfae9-8f65-4a9d-ab49-536aaacee161/76b1c67e-16af-4b0f-bbac-a7e5203a662e?signature=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXRoIjoiL2M2NzNjMWU3LWIxMDEtNDdkYS04MjkyLTJiMWU3MThmM2IwYS85MmJjZmFlOS04ZjY1LTRhOWQtYWI0OS01MzZhYWFjZWUxNjEvNzZiMWM2N2UtMTZhZi00YjBmLWJiYWMtYTdlNTIwM2E2NjJlIiwiaWF0IjoxNzY1MDIyODcyLCJleHAiOjE3OTY1OTM0MzJ9.MyQOebEc2ko_LIFHZz2UiBbBP2ld1nujJ_Z8eoe5NrA \" alt=\"image.png\" width=\"1016\" data-linear-height=\"56\" /\u003e\n\nI do like how GitKraken renders blame information inline.\n\n\u003cimg src=\"https://uploads.linear.app/c673c1e7-b101-47da-8292-2b1e718f3b0a/38439312-ace6-4aec-928d-a8b431819eed/efce9fb1-31dc-4a5f-9d6c-83c57ecefa47?signature=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXRoIjoiL2M2NzNjMWU3LWIxMDEtNDdkYS04MjkyLTJiMWU3MThmM2IwYS8zODQzOTMxMi1hY2U2LTRhZWMtOTI4ZC1hOGI0MzE4MTllZWQvZWZjZTlmYjEtMzFkYy00YTVmLTlkNmMtODNjNTdlY2VmYTQ3IiwiaWF0IjoxNzY1MDIyOTE1LCJleHAiOjE3OTY1OTM0NzV9.hXcKP8UhkIhJqkvJNOK_nRnp7OvCUTLCqJUHJWF6t9c \" alt=\"image.png\" width=\"643\" data-linear-height=\"262\" /\u003e\n\nOn hover over, we get a ton of data:\n\n* Author\n* Date of commit\n* GitHub issue / PR\n* Removed and added line (diff)\n* Commit SHA (hyperlinked)","author":{"url":"https://github.com/brendan-kellam","@type":"Person","name":"brendan-kellam"},"datePublished":"2025-12-03T01:16:52.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/650/sourcebot/issues/650"}

route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:6c0240f8-9e51-2792-5296-e3ace604059b
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-idDD04:FC5F:1857BE4:234932E:6A4E4EA5
html-safe-nonce6db8bbfd0ffcd69d80a1f132ebf3792063dcad68ac7ffad511effa807cea1a99
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJERDA0OkZDNUY6MTg1N0JFNDoyMzQ5MzJFOjZBNEU0RUE1IiwidmlzaXRvcl9pZCI6IjIyNzQ3ODc4NzA4NzgxNDMwOSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmace6a660b3122ac4f4798199dc76e1bc333bd212aa0790b32d7c1ac6a23d5464cc
hovercard-subject-tagissue:3688082087
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/sourcebot-dev/sourcebot/650/issue_layout
twitter:imagehttps://opengraph.githubassets.com/6f7dc7261f1f0e798ce81c3d65892c7f05726d1b9e83a04905c9fe6852dd8ab9/sourcebot-dev/sourcebot/issues/650
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/6f7dc7261f1f0e798ce81c3d65892c7f05726d1b9e83a04905c9fe6852dd8ab9/sourcebot-dev/sourcebot/issues/650
og:image:altSupport viewing git blame information when browsing code. I personally like GitKraken's approach of putting the blame information inline with the cursor. Getting blame data Got a prototype working ...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernamebrendan-kellam
hostnamegithub.com
expected-hostnamegithub.com
None030096ee0db095447bfe77409d33bfac127ca7128299c58deef27c52eaa1b1f0
turbo-cache-controlno-preview
go-importgithub.com/sourcebot-dev/sourcebot git https://github.com/sourcebot-dev/sourcebot.git
octolytics-dimension-user_id135396723
octolytics-dimension-user_loginsourcebot-dev
octolytics-dimension-repository_id846729675
octolytics-dimension-repository_nwosourcebot-dev/sourcebot
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id846729675
octolytics-dimension-repository_network_root_nwosourcebot-dev/sourcebot
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
releasee8506f6d0538364886e3f0153c154c410965e70d
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/sourcebot-dev/sourcebot/issues/650#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fsourcebot-dev%2Fsourcebot%2Fissues%2F650
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fsourcebot-dev%2Fsourcebot%2Fissues%2F650
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=sourcebot-dev%2Fsourcebot
Reloadhttps://github.com/sourcebot-dev/sourcebot/issues/650
Reloadhttps://github.com/sourcebot-dev/sourcebot/issues/650
Reloadhttps://github.com/sourcebot-dev/sourcebot/issues/650
Please reload this pagehttps://github.com/sourcebot-dev/sourcebot/issues/650
sourcebot-dev https://github.com/sourcebot-dev
sourcebothttps://github.com/sourcebot-dev/sourcebot
Notifications https://github.com/login?return_to=%2Fsourcebot-dev%2Fsourcebot
Fork 317 https://github.com/login?return_to=%2Fsourcebot-dev%2Fsourcebot
Star 3.6k https://github.com/login?return_to=%2Fsourcebot-dev%2Fsourcebot
Code https://github.com/sourcebot-dev/sourcebot
Issues 92 https://github.com/sourcebot-dev/sourcebot/issues
Pull requests 37 https://github.com/sourcebot-dev/sourcebot/pulls
Discussions https://github.com/sourcebot-dev/sourcebot/discussions
Actions https://github.com/sourcebot-dev/sourcebot/actions
Security and quality 0 https://github.com/sourcebot-dev/sourcebot/security
Insights https://github.com/sourcebot-dev/sourcebot/pulse
Code https://github.com/sourcebot-dev/sourcebot
Issues https://github.com/sourcebot-dev/sourcebot/issues
Pull requests https://github.com/sourcebot-dev/sourcebot/pulls
Discussions https://github.com/sourcebot-dev/sourcebot/discussions
Actions https://github.com/sourcebot-dev/sourcebot/actions
Security and quality https://github.com/sourcebot-dev/sourcebot/security
Insights https://github.com/sourcebot-dev/sourcebot/pulse
[FR] Git blame supporthttps://github.com/sourcebot-dev/sourcebot/issues/650#top
https://github.com/brendan-kellam
Featurehttps://github.com/sourcebot-dev/sourcebot/issues?q=state%3Aopen%20label%3A%22Feature%22
https://github.com/brendan-kellam
brendan-kellamhttps://github.com/brendan-kellam
on Dec 3, 2025https://github.com/sourcebot-dev/sourcebot/issues/650#issue-3688082087
GitKrakenhttps://help.gitkraken.com/gitlens/gitlens-features/#current-line-blame
https://camo.githubusercontent.com/cc9902e2935d69862f633d0bc894c3529079f6a92bc2b2ef1b3ea6a269975fa5/68747470733a2f2f75706c6f6164732e6c696e6561722e6170702f63363733633165372d623130312d343764612d383239322d3262316537313866336230612f39326263666165392d386636352d346139642d616234392d3533366161616365653136312f37366231633637652d313661662d346230662d626261632d6137653532303361363632653f7369676e61747572653d65794a68624763694f694a49557a49314e694973496e523563434936496b705856434a392e65794a775958526f496a6f694c324d324e7a4e6a4d5755334c5749784d4445744e44646b595330344d6a6b794c544a694d5755334d54686d4d324977595338354d6d4a6a5a6d466c4f5330345a6a59314c5452684f575174595749304f5330314d7a5a685957466a5a5755784e6a45764e7a5a694d574d324e3255744d545a685a693030596a426d4c574a6959574d745954646c4e5449774d3245324e6a4a6c4969776961574630496a6f784e7a59314d4449794f4463794c434a6c654841694f6a45334f5459314f544d304d7a4a392e4d79514f65624563326b6f5f4c4946485a7a32556942624250326c64316e756a4a5f5a38656f65354e724120
https://camo.githubusercontent.com/553d53d495a582508cb1ad8135c579ff5e9d8d5370e4e3c0225a905476c29323/68747470733a2f2f75706c6f6164732e6c696e6561722e6170702f63363733633165372d623130312d343764612d383239322d3262316537313866336230612f33383433393331322d616365362d346165632d393238642d6138623433313831396565642f65666365396662312d333164632d346135662d396436632d3833633537656365666134373f7369676e61747572653d65794a68624763694f694a49557a49314e694973496e523563434936496b705856434a392e65794a775958526f496a6f694c324d324e7a4e6a4d5755334c5749784d4445744e44646b595330344d6a6b794c544a694d5755334d54686d4d3249775953387a4f44517a4f544d784d693168593255324c5452685a574d744f5449345a4331684f4749304d7a45344d546c6c5a5751765a575a6a5a546c6d596a45744d7a466b597930305954566d4c546c6b4e6d4d744f444e6a4e54646c5932566d595451334969776961574630496a6f784e7a59314d4449794f5445314c434a6c654841694f6a45334f5459314f544d304e7a56392e6858634b503855686b49684a716b764a4e4f4b5f6e526e70374f764355544c43714a55484a57463674396320
brendan-kellamhttps://github.com/brendan-kellam
Featurehttps://github.com/sourcebot-dev/sourcebot/issues?q=state%3Aopen%20label%3A%22Feature%22
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.