Skip to content

Commit

Permalink
Escape special characters in Markdown anchors
Browse files Browse the repository at this point in the history
Replace all special characters in markdown anchors
with `-` (and `/` with `_`) so that they work everywhere
(e.g. BitBucket).

see #457
  • Loading branch information
derlin committed Oct 13, 2021
1 parent 27bd277 commit 13340ab
Show file tree
Hide file tree
Showing 6 changed files with 76 additions and 56 deletions.
78 changes: 39 additions & 39 deletions examples/doc/example.md
Expand Up @@ -3,33 +3,33 @@

## Table of Contents

- [Booking.proto](#Booking.proto)
- [Booking](#com.example.Booking)
- [BookingStatus](#com.example.BookingStatus)
- [BookingStatusID](#com.example.BookingStatusID)
- [EmptyBookingMessage](#com.example.EmptyBookingMessage)
- [Booking.proto](#Booking-proto)
- [Booking](#com-example-Booking)
- [BookingStatus](#com-example-BookingStatus)
- [BookingStatusID](#com-example-BookingStatusID)
- [EmptyBookingMessage](#com-example-EmptyBookingMessage)

- [BookingService](#com.example.BookingService)
- [BookingService](#com-example-BookingService)

- [Customer.proto](#Customer.proto)
- [Address](#com.example.Address)
- [Customer](#com.example.Customer)
- [Customer.proto](#Customer-proto)
- [Address](#com-example-Address)
- [Customer](#com-example-Customer)

- [Vehicle.proto](#Vehicle.proto)
- [Manufacturer](#com.example.Manufacturer)
- [Model](#com.example.Model)
- [Vehicle](#com.example.Vehicle)
- [Vehicle.Category](#com.example.Vehicle.Category)
- [Vehicle.proto](#Vehicle-proto)
- [Manufacturer](#com-example-Manufacturer)
- [Model](#com-example-Model)
- [Vehicle](#com-example-Vehicle)
- [Vehicle.Category](#com-example-Vehicle-Category)

- [Manufacturer.Category](#com.example.Manufacturer.Category)
- [Manufacturer.Category](#com-example-Manufacturer-Category)

- [File-level Extensions](#Vehicle.proto-extensions)
- [File-level Extensions](#Vehicle-proto-extensions)

- [Scalar Value Types](#scalar-value-types)



<a name="Booking.proto"></a>
<a name="Booking-proto"></a>
<p align="right"><a href="#top">Top</a></p>

## Booking.proto
Expand All @@ -39,7 +39,7 @@ This file is really just an example. The data model is completely
fictional.


<a name="com.example.Booking"></a>
<a name="com-example-Booking"></a>

### Booking
Represents the booking of a vehicle.
Expand All @@ -51,7 +51,7 @@ Vehicles are some cool shit. But drive carefully!
| ----- | ---- | ----- | ----------- |
| vehicle_id | [int32](#int32) | | ID of booked vehicle. |
| customer_id | [int32](#int32) | | Customer that booked the vehicle. |
| status | [BookingStatus](#com.example.BookingStatus) | | Status of the booking. |
| status | [BookingStatus](#com-example-BookingStatus) | | Status of the booking. |
| confirmation_sent | [bool](#bool) | | Has booking confirmation been sent? |
| payment_received | [bool](#bool) | | Has payment been received? |
| color_preference | [string](#string) | | **Deprecated.** Color preference of the customer. |
Expand All @@ -61,7 +61,7 @@ Vehicles are some cool shit. But drive carefully!



<a name="com.example.BookingStatus"></a>
<a name="com-example-BookingStatus"></a>

### BookingStatus
Represents the status of a vehicle booking.
Expand All @@ -77,7 +77,7 @@ Represents the status of a vehicle booking.



<a name="com.example.BookingStatusID"></a>
<a name="com-example-BookingStatusID"></a>

### BookingStatusID
Represents the booking status ID.
Expand All @@ -92,7 +92,7 @@ Represents the booking status ID.



<a name="com.example.EmptyBookingMessage"></a>
<a name="com-example-EmptyBookingMessage"></a>

### EmptyBookingMessage
An empty message for testing
Expand All @@ -108,28 +108,28 @@ An empty message for testing



<a name="com.example.BookingService"></a>
<a name="com-example-BookingService"></a>

### BookingService
Service for handling vehicle bookings.

| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| BookVehicle | [Booking](#com.example.Booking) | [BookingStatus](#com.example.BookingStatus) | Used to book a vehicle. Pass in a Booking and a BookingStatus will be returned. |
| BookingUpdates | [BookingStatusID](#com.example.BookingStatusID) | [BookingStatus](#com.example.BookingStatus) stream | Used to subscribe to updates of the BookingStatus. |
| BookVehicle | [Booking](#com-example-Booking) | [BookingStatus](#com-example-BookingStatus) | Used to book a vehicle. Pass in a Booking and a BookingStatus will be returned. |
| BookingUpdates | [BookingStatusID](#com-example-BookingStatusID) | [BookingStatus](#com-example-BookingStatus) stream | Used to subscribe to updates of the BookingStatus. |





<a name="Customer.proto"></a>
<a name="Customer-proto"></a>
<p align="right"><a href="#top">Top</a></p>

## Customer.proto
This file has messages for describing a customer.


<a name="com.example.Address"></a>
<a name="com-example-Address"></a>

### Address
Represents a mail address.
Expand All @@ -149,7 +149,7 @@ Represents a mail address.



<a name="com.example.Customer"></a>
<a name="com-example-Customer"></a>

### Customer
Represents a customer.
Expand All @@ -163,7 +163,7 @@ Represents a customer.
| details | [string](#string) | optional | Customer details. |
| email_address | [string](#string) | optional | Customer e-mail address. |
| phone_number | [string](#string) | repeated | Customer phone numbers, primary first. |
| mail_addresses | [Address](#com.example.Address) | repeated | Customer mail addresses, primary first. |
| mail_addresses | [Address](#com-example-Address) | repeated | Customer mail addresses, primary first. |



Expand All @@ -179,14 +179,14 @@ Represents a customer.



<a name="Vehicle.proto"></a>
<a name="Vehicle-proto"></a>
<p align="right"><a href="#top">Top</a></p>

## Vehicle.proto
Messages describing manufacturers / vehicles.


<a name="com.example.Manufacturer"></a>
<a name="com-example-Manufacturer"></a>

### Manufacturer
Represents a manufacturer of cars.
Expand All @@ -197,14 +197,14 @@ Represents a manufacturer of cars.
| id | [int32](#int32) | required | The unique manufacturer ID. |
| code | [string](#string) | required | A manufacturer code, e.g. &#34;DKL4P&#34;. |
| details | [string](#string) | optional | Manufacturer details (minimum orders et.c.). |
| category | [Manufacturer.Category](#com.example.Manufacturer.Category) | optional | Manufacturer category. Default: CATEGORY_EXTERNAL |
| category | [Manufacturer.Category](#com-example-Manufacturer-Category) | optional | Manufacturer category. Default: CATEGORY_EXTERNAL |






<a name="com.example.Model"></a>
<a name="com-example-Model"></a>

### Model
Represents a vehicle model.
Expand All @@ -223,7 +223,7 @@ Represents a vehicle model.



<a name="com.example.Vehicle"></a>
<a name="com-example-Vehicle"></a>

### Vehicle
Represents a vehicle that can be hired.
Expand All @@ -232,10 +232,10 @@ Represents a vehicle that can be hired.
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [int32](#int32) | required | Unique vehicle ID. |
| model | [Model](#com.example.Model) | required | Vehicle model. |
| model | [Model](#com-example-Model) | required | Vehicle model. |
| reg_number | [string](#string) | required | Vehicle registration number. |
| mileage | [sint32](#sint32) | optional | Current vehicle mileage, if known. |
| category | [Vehicle.Category](#com.example.Vehicle.Category) | optional | Vehicle category. |
| category | [Vehicle.Category](#com-example-Vehicle-Category) | optional | Vehicle category. |
| daily_hire_rate_dollars | [sint32](#sint32) | optional | Dollars per day. Default: 50 |
| daily_hire_rate_cents | [sint32](#sint32) | optional | Cents per day. |

Expand All @@ -249,7 +249,7 @@ Represents a vehicle that can be hired.



<a name="com.example.Vehicle.Category"></a>
<a name="com-example-Vehicle-Category"></a>

### Vehicle.Category
Represents a vehicle category. E.g. &#34;Sedan&#34; or &#34;Truck&#34;.
Expand All @@ -267,7 +267,7 @@ Represents a vehicle category. E.g. &#34;Sedan&#34; or &#34;Truck&#34;.



<a name="com.example.Manufacturer.Category"></a>
<a name="com-example-Manufacturer-Category"></a>

### Manufacturer.Category
Manufacturer category. A manufacturer may be either inhouse or external.
Expand All @@ -281,7 +281,7 @@ Manufacturer category. A manufacturer may be either inhouse or external.



<a name="Vehicle.proto-extensions"></a>
<a name="Vehicle-proto-extensions"></a>

### File-level Extensions
| Extension | Type | Base | Number | Description |
Expand Down
6 changes: 6 additions & 0 deletions filters.go
Expand Up @@ -11,6 +11,7 @@ var (
paraPattern = regexp.MustCompile(`(\n|\r|\r\n)\s*`)
spacePattern = regexp.MustCompile("( )+")
multiNewlinePattern = regexp.MustCompile(`(\r\n|\r|\n){2,}`)
specialCharsPattern = regexp.MustCompile(`[^a-zA-Z0-9_-]`)
)

// PFilter splits the content by new lines and wraps each one in a <p> tag.
Expand All @@ -36,3 +37,8 @@ func NoBrFilter(content string) string {
}
return strings.Join(paragraphs, "\n\n")
}

// AnchorFilter replaces all special characters with URL friendly dashes
func AnchorFilter(str string) string {
return specialCharsPattern.ReplaceAllString(strings.ReplaceAll(str, "/", "_"), "-")
}
13 changes: 13 additions & 0 deletions filters_test.go
Expand Up @@ -49,3 +49,16 @@ func TestNoBrFilter(t *testing.T) {
require.Equal(t, output, NoBrFilter(input))
}
}

func TestAnchorFilter(t *testing.T) {
tests := map[string]string{
"com/example/test.proto": "com_example_test-proto",
"com.example.SomeRequest": "com-example-SomeRequest",
"héllô": "h-ll-",
"un_modified-Content": "un_modified-Content",
}

for input, output := range tests {
require.Equal(t, output, AnchorFilter(input))
}
}
7 changes: 4 additions & 3 deletions renderer.go
Expand Up @@ -75,9 +75,10 @@ func (rt RenderType) template() ([]byte, error) {
}

var funcMap = map[string]interface{}{
"p": PFilter,
"para": ParaFilter,
"nobr": NoBrFilter,
"p": PFilter,
"para": ParaFilter,
"nobr": NoBrFilter,
"anchor": AnchorFilter,
}

// Processor is an interface that is satisfied by all built-in processors (text, html, and json).
Expand Down
2 changes: 1 addition & 1 deletion resources.go
Expand Up @@ -13,7 +13,7 @@ import (
var embeddedResources = map[string]string{
"docbook.tmpl": "H4sIAAAAAAAA/+xZ3W/bNhB/z19BaC/bikodugDDQLvA7LnF0GZB3O2dls42MYrUSMqNoel/Hyiq+v5a7bhZkJcguvvxjryP39ESfnMfMnQAqajgM+cH95WDgPsioHw3c/74uHr5k/NmfoWJ1NRnML9CCGuqGcxvpdDCFwwthR+HwDXRVHDsWe0VQkkiCd8BcleUgUpTs1SBb1BGXRhKEveGhJCmlbVmdUQkQe4SlC9pZFZlJip2P4BSZJebLo0jGsycJHFXMWPWsGNNVj2+F3zX4XXIr9HRLXLfEbWiwAJVyLEmGwZoK0kIM4cwVjgsXGKfEaU4CVveSwWyZhsbMiZ2UsQR8gVTM+fHinGEsBFG4BvlJxro/cz53vFORrxyr8dBr5sQvQcSVCUIYSk+1SUIYeBaHufZabFnH7ohH48RDCPekw2wYUglk51A7DX2iL3WQbDeiKCxrlLftWoYPXil4If2jRnlfyHzB3hZ0SYkpqLzKrKP2DOw+bA9s8JEa8xvVuXfUh7APXJ/z+KmkBNAJMEnGgLnnwC2JGYabQlT8F2aYgijPVFUzZcFysVeIU0S4EGadraW7amltfgnYbE5jsHNc9nPKEmaei8D5GanJdXkK4PXE11PK/ZsqxV84WWdXXJD1ULBBr/ea+CGP8/PCDegNASo9DBCDteXIIfHQR9FTE6lkF+IGkHcxOEG5FdmmY4qG43RV2Katr2F4JpQTvmuYblU/Hc2s2kZp7MnxDrYq92gqqqyUHgcXu5OdC6my4I8Rm+vL0FvJ/KSOdv/gE5svM9OJae15aWaqqeN8oe+sV7/9VKUt/l585LBAVj/nMaUb4UMCRvsludJ/jzJnyf5k5rktb6fQj55jaxBHqj/Ze82Hn6Gd8zvD6D34nG8vHhwwrJnReOT/g7+jkFpNE5dd6AiwRVMgD44P+WpvAA55fFpMEkubdGIbfVcu9YSSEj5Lk2Ryv4faufBPdjItzZhxb27sOov3MZjvP00FBVe6nxtu/YJI9Le27Oqrff++I2n/74z1tMd+usxwHn17YZqZSnPtBtJoUV/W3++mAhtAtgPWLx4MaT+jRzIkP72qPd9fGFlb8Wg+28Grb+7HVLfxZtjh75R2i2aapNUOR6z4qtTVF8KPs/M7INFpcMrz0ObN+RmkjOKWkTRJGsmVZOANmeToG+nHWSx3hMZjTveTzuJyWsvsEVcTdpqkFadsjpuThV2usJe8UHq3wAAAP//9p3zJMIaAAA=",
"html.tmpl": "H4sIAAAAAAAA/9xa23LbONK+91P0MJlyThRl2U7yK7T+qnGSSW1NElfszM5ebUEkJKICARwCdOzV6t23APAAkiAlnzJbW7kICTS7G91fNz5ADn96+/n04h9n7yCRKzrb2wvN/wBhglGsHgBCSSTFs7OMSx5xCm95lK8wk0gSzsLAzBrJFZYIogRlAssT7+vFe/+1V0xRwr5BhumJJ+Q1xSLBWHogr1N84kl8JYNICA+SDC9OvETKVEyDYMGZFKMl50uKUUrEKOIrJff/C7Qi9Prk6zxnMp8ejccvXo3HL47GYyIRJZEXFEa1KfMMMOfxNayLF4DvJJbJFF6O8epNNbhC2ZKwKRzgFaBc8nom4pRnU3g0mUzqQeWgb5yZgmfc8V6AQEz4AmdkUYumKI4JW/pzLiVfTeGoNrvZKx6SA8s/rfs7JstEToHxbIVorW3OsxhnlbKD9AoEpySGRwihfqPj0TG+6pqdWGbvQ7MVx9ExXsG4a/LwL1kpsqwq0PkxjnimgawsM9zN9/HLV3hy3NEk0ZziLpoOxuOfW/AQ5F94Cq/t8WJNEacUpQJPoXzqmlFl2BeqV+OxpRNF35YZz1nsl67HkfrX1akLQWZTJhM/SgiNn+BLzJ7aIOgqW8zVv66yuIOdRpKiKOokqcgOTBwZkjGk7SQRFmMmdVF2EdbFllJhre3gaZ++8RsInsEnDmYAOIMFyYSEFAhTap4Fbd3BM7jQmecLWBBMY1ELjfSAb5Ah45YL6tP3SqD+wEKN3Qy2aZsU2i6uU3xnZYeFst/QHFOHtpc3UXZUKHuLRZSRVJWVQ6XdV52BxVcSM0E4s4NbDQ4F+F0ptGtcBrXeJtCDCstg/4LE/SgsA/4pX81x5lB5fFONx/eUQpav4BLRHIuRnUSWr4by9wmtdg9Mj67JtpjcSNvh/cRDRIiizEREk55GWMysr2d9PVu6klm9Kyna/qGDOdi2Is4kVsSptvBI8shX44gwnEFOLbWUCOlroqRNt/fBcmOleNFuwZQw7JdeHTR2OEd3rj2BGVACs8Zu3NjY5pzGriW+JxSD2hEJW0JMLhu9lypfzNSWbTkmIqXoemo28RtTjXJtR4rZdBmOyyEHw2rHuemUH2FKh3V2uAyiZMmmkKkY7qjXQk+CYf/j/gvYf7cPiMWw/8c+zFG8xEJvhgmGC35qBVzPOSI9emlDpEJHc7hyijANojnl0bc3ez3Ian5rrzXCTOLszXYUNbjYSwWGDtF7/X9zdPR6mFAtFuPotfVtBXPNZ9ShwTz5jTpx0KImm6qgl6GY5EKV2VUz+WFQHGXM20++D18FziDKheQrOD0/B9+/xUmrlhipUX1uCgNz9lOPiiqWRpMDIPGJp897Xu9xMDmo5CezqiedFj0pDJJJOa8KWCu0e5NXntbCnJaz1RjAep0htsQwUq1AbDbVhJp6rOrjn0ztIdMTGKnNpCERUjKzXgFCVITh0XpdiHuz6jEMUEs8p80By5+PWAi0bLnUY9Zh/H1OaelAKFLEIKJIiBNPl5k3+xgGalQ59xtnyx4HDVK65tZrzOKOZ5Xv71i+eijH3z2o4xVRvJ33NWA2G79mne6V/FGsRCHPp/gS05puivta0TnOLkn0YDA6r7NxD5kIg2ZBNL9rf6H8r53tUh5vdm5I0u+aJCnSrcNqa60thkFMLotO0tMUhhuCbj9FdOx91Wo2YTLRLcjdHJKJtZyiKV7w1Ipo4WPpTQoji0Vuqt13qIeEyWHpgp3bVjUlh3bY++yoObKA0Qck9EG0CbLQMM4qItURz2s1QVnfDNqj2SyU8UwrDgMZ6zeVw+pFnzCrN8tDMxbIrGUocFgKpdmR2uCsANBZV+2fq3hkbKdUdtZVCnWqTC3NyoR5NXDt16KEVRS22EpnOlFPCIvxFYw+6ygJ8GKcZjhCEsfev2O8QDmVsEBU4KebTShkxtly9raSGSnOoMfKUlyvm8Ao8PDWqNJlt9kUb1PQ0vZMoSUM0p5FdnPY1zc6WQwDjbXZXnNDX5mK0NXb2ux9sHNexKhlaL1+zM2RraOgKAb8J4zAu0SUxEjyzFxteNUIHmU5xcKD9gqSo9nvhUhsrnUUtTlqg9WsqZ1iVwENQrSuqh6BwhezE+2aGmeBbSuxMiVFqf2dyMTEvhPfLWvaqewcw04a1vTxSVEyUGT/6ehL3maLDYWU1O5o4BeId22EpSnXNl6oC9wO3q1onGVjFU7reyqwA7MmafCdyEQtc7MBXrTgB8OuiupQij/Xe8D/Cmp1A4c0I0wuwPv5+aXXheR99NEbQqL1vR4B3xorZbp8oYdoh/OGn00K0bpmvBGNqOy5qcQvSNQv5p7vgYnF8Enjv4JcNLScmvM0YcuWvnriRrTFBHkH2DcZhotgwF/MMNzftbDfeza+F0JeR61RMNUVtNesKhdaTZ1UzfUWheAoA1cRVJHQOerC3wn+HaC/E7B6YNUHkC48uuDoQKMFjA4QhlpgjYbeq4Se6wIbIbv3zSEsPGDPvClUBrrlXeBy1z75UF3yLlC+3w75IAXQfzXV3wx/dCP8iGXCY2j0wy/4zxwLCY0y+IJFypnAzdH7LgDjzgOiv1hbC7bFaBOzBmHF1LnMMFoRttxsQOjnClE72jXh6xg2w27LZu42pn9U67cw+lgYnLevDKwbB5Nd15XDwIWDdd1g/qBthFIySqRMvaaTyVGB5uKc9uHi4gzmhMWELTuXDK5jWj+1dga5XToDQv3zZ0hKnPUd49T2w+Pr3fK2Mz2vDndFxsqqGzzdrdeP+38ggltcIgyU9GO2nf8Yn7cIFdHdIqVC7BbZlTbflko7bxw6QB66cPhROO6/bfjRQLzTVnCnC4ZdWuUN8t74sn2pYM83iEX528quvwMlE2O2yRT6/nCm/hW5lcKSL4zSjEveJAGfuMSiejt9/rx6/hu6RNXL2bVMLJL9K68/eVQLfTirKUc+v+6wiha42rCqWZdeYfunmqykXfpX+HIj3nNAyRLoYqGEm1r4wPxpmm7RoAK0RcSEbYvQr9tcPT1PUJYOmUm2+arS4RZpFkYT2o1ysAohDMxwGBR/Qf+fAAAA///J6JHwUy8AAA==",
"markdown.tmpl": "H4sIAAAAAAAA/+RWzW7jNhC+6ymmUg9rL+TcF7YPjZtdFLtpsA56WRQNbY1tATKpipSRQOS7F/yRSFlW4gLpqT5Ymhlpfr75ZsQEHiom2JYVsGLb+ohUEJEzGs0JUHLERSxYGS/nN2QZRUkCj2RTILAd3DIqkAoeNU1F6B5hdpcXyJWKmubnXV7gX/p1+LSA2T05olIp/Ggad//nh6S7n0QATZNCvoPZN+Sc7JGDUkbrPLdqpQCsm6+M7kNXd3VRhO6QZs5FCkgzSDtJh/mV1sfzGEb3bgGeBVKeMzqI0hlcKA1aWuAJC/A2E9KDqFSKne2a8GusTvl2AGOr9lX+2wpbbQo/1ltSkAr+IEWN8PhSos6aG2V60spUaOUkupognnJdZo548xJIke/pIq7y/UHEyzmBQ4W7RZwYdj6yUj83vyktSbv3o6aZrZBvq7zUpFYqyMaTqhfYw+BZbzx6Rlz0qnH/QvhdjkWmfUowtyANOCDhK9lgARKCN0FGElL9A3uFvuh+IEMMtX/Xb+krBdnRVscLm2rliX3aZGEeNyl/yGmGzzD73eTDIc6wrHBLBGaxzHBH6kLAjhQcJ0pNp6vOOptOW440DWWbCvqQWEBW1oMhiVLgxE9gAAxNzpWp1FKsvXpow9mJpB8XD/EvhOvLfX3cYDUG9RDuDu1x2IOBvgR9D3kr6/1IcprT/bnFpuek/xg6a5r/lNoZPrb7NU2XwSi43fcOcyBBm97qwRWAm+JGwX4LwgCMIQhotr9D4BK3AhhGlnAIycUN/v/l59OAoE+jDPU96bXgjJ3+s3UdQV8h5zcUB5a1HP2Of9fIRdud78hLRjm28mh3zhtxLp7LMvzo6ATG97dL6XyNO3WwzW0TnH4tKiTHnO6VAm7uO8idV1vZ0K3VX/BrDa85fmvwBj3m7anEtdfNZ5LA8CyhmzUr9cm07cY9E8hBwu3HjyDhN3IiIOHhRRzMgH1m2pRo1ZcH3ct68zLWNHu9OFv+z9sDIpo0ffNCNppTtMUwhpsl9FWu07qEbv7KMrTpgkLZVhZqPvd83a4PpCq7pw89Z7r6Vu6A/icAAP//o9X/quoLAAA=",
"markdown.tmpl": "H4sIAAAAAAAA/+RWTW/jNhC961dMpR42Xsi5L2wfGje7KHbTYB30EhQNbY1tATKpipSRQOR/L/ghkZZkJy3S0/pgiTPifLz3hlIC9xUTbMMKWLJNfUAqiMgZjWYEKDngPBasjBeza7KIoiSBB7IuENgWbhgVSAWPmqYidIcwvc0L5EpFTfPzNi/wL70dPs1hekcOqFQKj03j7v/8kLh7kEDoZs8qpa4igKZJId/C9BtyTnbIQSljdSlas1IANt5XRndhzNu6KEbjIs1crBSQZpB2K53vV1of+smM7f0zPQukPGd0kK5zuJwaz7TAIxbgfSZ3gK9PnmL30FvqWGF1zDcDhFuz7/s/99xaU3hcbUhBKviDFDXCw0uJug9ujOlRG1OhjVfRm9Xk9TkUkpPrrARS5Ds6j6t8txfxYkZgX+F2HidG0w+s1M/Nrksr7a7XqGmmS+SbKi/1KCgVlOUVeFLBCDB+aExoL5/R8JqSL4Tf5lhkOrgEcwvSwAUSvpI1FiAh2AkykpDqH9grnC7dD2SIqo7vpCB9yyA7jet8Id8uf8e33WbKMftM7R9ymuEzTH83hXGIMywr3BCBWSwz3JK6ELAlBccrpSaTZeedTiatfJqGsnUFp9hYZJY2gtGPUuCWn8AgGbpcKNOyVV979RiHgxZJP1se618I15e7+rDG6hzmQ9w72M/jH0z/GAcnFNi1PmdJTnO663tseW71P0NnXbOfUjveh/Z4TtNFMBzuxHzPyZDgNl8k4w3Imy7Pov4algEqQzTQvDwcFGMiC/B47egOsRl9Afy4in0aSPbprGY9OSdc9PTqX3b/UrIX5PoNxZ5lrWq/4981ctHS9B15ySjHdn2Wpj4j/WV/LcM3lC7g/BnvSuof9c48duJbWtwDK1EhOeR0pxRwc9+R4MLbFofxrf1SAvvEpQyvDeeAft5+5jjm3QwnCQy/STR901J/Drf83DGBHCTcfPwIEn4jRwIS7l/E3szeZ6ZdiTZ9udfs1uuXczTa6+jY+T/vDzRqyvR0hkI1n+49MGO4XkDo64ZP99LNaFmGPt1ZuLYthpbPJ7FuVntSld3T+5NgGoZ23SH+TwAAAP//htfnl2gMAAA=",
"scalars.json": "H4sIAAAAAAAA/9yXzW4aMRDH7zzFiFMqBZDSlEa9JZGQOOQEOUWp5GVnvW6NTewxzaqq1HfoG/ZJqt0F1gYvpChVk9zQfHg9v/nPWNx1AL53AAC6C6NJT4sFdj9BN9Uukdg9rV1KE9rSvDbMFot45MzG7XxzciY1o+H52vGFLVk8ZZEvgpyNvaBcq6jLuKRYO0aVowPw47SlxiB1X4lBYFNhYN4q8P1ZrMCwjn9dn1DeNTb13Vq0sGRGsERiT6LilAOqmU6F4n0YK8wyMROoCDJtNh5QyBmJJYJy8wSNhd8/f4HIoNDOQCZQpiAsSPEVZQGkIWdl7DppyaRDewrOItjqYiCUJWRpPwI8uHkDXKgI7iDWh+1Fe6iFIuRo4rC9FB/1leDKzUEbGInH8tcJs2DwwQmD6btDPWi0/sJ6MDw/0IPm5k0PpFY82oT4SPvhu10YWDLCC9huxsBP3+3IXvLuGPlHOLgWMbqoGt0zy/EAgaM06Y4RZQuZmERcXCPu/4jkKET2qN05EVxhCkJRPWt9mOZoEebaIGxGWhZ1Cu6OM+VMgUHuJDNQXcG+7fVoj9qPz855eN7G+VWvwEw8YhqR8aX8xgoLWflqJAWh7cNNgK4G5FbvdLZ6OYAZBJ0RKuAGGaGp484+n128vM35zEqtWEakumKJgud0CGb54B6G+WH4epft/mF/uh7f9tL7Cy29wa2UaC2f8q/Lj2vK9K08eqZfZWlHpiKFbnuCCrecfoFT4/BaMmsHIyZt/XN/twOSTa+hdsDcWQJWd36mFTGh4HY66l2sXq+01NjHXiIILifX4zEQPlJMF+GHGmKhnbdczKc2CZuft3wiZGbJDJwS5ZVj3Ooz4aQqbf98VMrfAXbDig0fpgpgJhFkmCnA4oNDNSvXafvUtNG5KggnLYTu7svjYoR2s55OaR+dqsO9i6vxtEbUue/8CQAA//8z+wC/ohEAAA==",
}

Expand Down

0 comments on commit 13340ab

Please sign in to comment.