Skip to content

Commit

Permalink
Merge pull request #2697 from obsidian-tasks-group/fix-no-vs16-on-dep…
Browse files Browse the repository at this point in the history
…endsOn

fix: Stop writing Variant Selector 16 on dependsOn emojis - ⛔
  • Loading branch information
claremacrae authored Mar 7, 2024
2 parents 38782c2 + 05010cd commit f138b16
Show file tree
Hide file tree
Showing 30 changed files with 104 additions and 112 deletions.
8 changes: 4 additions & 4 deletions docs/Advanced/Styling.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ To help visualise the structure above, here is the HTML for a sample task shown
<!-- snippet: TaskLineRenderer.test.Visualise_HTML_Full_task_-_full_mode.approved.html -->
```html
<!--
- [ ] Do exercises #todo #health 🆔 abcdef ⛔ 123456,abc123 🔼 🔁 every day when done ➕ 2023-07-01 🛫 2023-07-02 ⏳ 2023-07-03 📅 2023-07-04 ❌ 2023-07-06 ✅ 2023-07-05 ^dcf64c
- [ ] Do exercises #todo #health 🆔 abcdef ⛔ 123456,abc123 🔼 🔁 every day when done ➕ 2023-07-01 🛫 2023-07-02 ⏳ 2023-07-03 📅 2023-07-04 ❌ 2023-07-06 ✅ 2023-07-05 ^dcf64c
-->

<li
Expand All @@ -93,7 +93,7 @@ To help visualise the structure above, here is the HTML for a sample task shown
<span class="tasks-list-text">
<span class="task-description"><span>Do exercises #todo #health</span></span>
<span class="task-id"><span>🆔 abcdef</span></span>
<span class="task-dependsOn"><span>⛔ 123456,abc123</span></span>
<span class="task-dependsOn"><span>⛔ 123456,abc123</span></span>
<span class="task-priority" data-task-priority="medium"><span>🔼</span></span>
<span class="task-recurring"><span>🔁 every day when done</span></span>
<span class="task-created" data-task-created="past-4d"><span>➕ 2023-07-01</span></span>
Expand All @@ -118,7 +118,7 @@ Here is the same task in [[Layout#Short Mode|short mode]]. The only difference i
<!-- snippet: TaskLineRenderer.test.Visualise_HTML_Full_task_-_short_mode.approved.html -->
```html
<!--
- [ ] Do exercises #todo #health 🆔 abcdef ⛔ 123456,abc123 🔼 🔁 every day when done ➕ 2023-07-01 🛫 2023-07-02 ⏳ 2023-07-03 📅 2023-07-04 ❌ 2023-07-06 ✅ 2023-07-05 ^dcf64c
- [ ] Do exercises #todo #health 🆔 abcdef ⛔ 123456,abc123 🔼 🔁 every day when done ➕ 2023-07-01 🛫 2023-07-02 ⏳ 2023-07-03 📅 2023-07-04 ❌ 2023-07-06 ✅ 2023-07-05 ^dcf64c
-->

<li
Expand All @@ -138,7 +138,7 @@ Here is the same task in [[Layout#Short Mode|short mode]]. The only difference i
<span class="tasks-list-text">
<span class="task-description"><span>Do exercises #todo #health</span></span>
<span class="task-id"><span>🆔</span></span>
<span class="task-dependsOn"><span>⛔</span></span>
<span class="task-dependsOn"><span>⛔</span></span>
<span class="task-priority" data-task-priority="medium"><span>🔼</span></span>
<span class="task-recurring"><span>🔁</span></span>
<span class="task-created" data-task-created="past-4d"><span>➕</span></span>
Expand Down
12 changes: 6 additions & 6 deletions docs/Getting Started/Task Dependencies.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ flowchart BT
classDef TASK stroke-width:3px,font-family:monospace;
2["- [ ] do this first 🆔 abcdef"]:::TASK
1["- [ ] do this after first ⛔ abcdef"]:::TASK
1["- [ ] do this after first ⛔ abcdef"]:::TASK
1-- depends on --> 2
linkStyle default stroke:gray
Expand Down Expand Up @@ -130,7 +130,7 @@ By implementing either of these methods, the task list is updated to reflect the

```text
- [ ] Build a first draft 🆔 4ijuhy
- [ ] Test with users ⛔ 4ijuhy
- [ ] Test with users ⛔ 4ijuhy
```

Then, if the query `is not blocked` is used
Expand All @@ -149,7 +149,7 @@ Until this task is marked as complete, at which time Obsidian Tasks sees that 'T

```text
- [x] Build a first draft 🆔 4ijuhy
- [ ] Test with users ⛔ 4ijuhyz
- [ ] Test with users ⛔ 4ijuhyz
```

## Search concepts
Expand Down Expand Up @@ -236,7 +236,7 @@ is not blocked
> classDef TASK stroke-width:3px,font-family:monospace;
>
> 2["- [ ] this is blocking 🆔 abcdef"]:::TASK
> 1["- [ ] this is blocked&nbsp ⛔ abcdef"]:::TASK
> 1["- [ ] this is blocked&nbsp ⛔ abcdef"]:::TASK
> 1-- depends on --> 2
>
> linkStyle default stroke:gray
Expand All @@ -251,7 +251,7 @@ is not blocked
> classDef TASK stroke-width:3px,font-family:monospace;
>
> 4["- [ ] not blocking 🆔 abcdef"]:::TASK
> 3["- [x] not blocked&nbsp ⛔ abcdef"]:::TASK
> 3["- [x] not blocked&nbsp ⛔ abcdef"]:::TASK
> 3-- depends on --> 4
>
> linkStyle default stroke:gray
Expand All @@ -267,7 +267,7 @@ is not blocked
>
> 5["- [x] not blocking 🆔 abcdef"]:::TASK
> 4["- [ ] blocking 🆔 ghijkl"]:::TASK
> 3["- [ ] blocked ⛔ abcdef,ghijkl"]:::TASK
> 3["- [ ] blocked ⛔ abcdef,ghijkl"]:::TASK
> 3-- depends on --> 5
> 3-- depends on --> 4
>
Expand Down
2 changes: 1 addition & 1 deletion docs/How To/Find tasks with invalid data.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ The following tasks block lists any tasks that have emoji in the description, wh
````text
```tasks
# These instructions need to be all on one line:
(description includes 🔺) OR (description includes ⏫) OR (description includes 🔼) OR (description includes 🔽) OR (description includes ⏬) OR (description includes 🛫) OR (description includes ➕) OR (description includes ⏳) OR (description includes 📅) OR (description includes ✅) OR (description includes ❌) OR (description includes 🔁) OR (description includes ⛔) OR (description includes 🆔)
(description includes 🔺) OR (description includes ⏫) OR (description includes 🔼) OR (description includes 🔽) OR (description includes ⏬) OR (description includes 🛫) OR (description includes ➕) OR (description includes ⏳) OR (description includes 📅) OR (description includes ✅) OR (description includes ❌) OR (description includes 🔁) OR (description includes ⛔) OR (description includes 🆔)
# Optionally, uncomment this line and exclude your templates location
# path does not include _templates
Expand Down
2 changes: 1 addition & 1 deletion docs/Introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ _In recent [releases](https://github.com/obsidian-tasks-group/obsidian-tasks/rel

- 6.1.0:
- Add support for [[task dependencies]]:
- First, [[Create or edit Task#Dependencies|use 'Create or edit Task']] to define the order in which you want to work on a set of tasks, using two new task emojis: 🆔 and ⛔.
- First, [[Create or edit Task#Dependencies|use 'Create or edit Task']] to define the order in which you want to work on a set of tasks, using two new task emojis: 🆔 and ⛔.
- Then adjust your searches, perhaps to see tasks that are [[Filters#Blocking Tasks|blocking others]], or hide ones that are [[Filters#Blocked Tasks|blocked]] and cannot yet be done.
- `query.allTasks` is now available in custom searches: see [[Query Properties#Values for Query Search Properties|query search properties]].
- The [[Create or edit Task]] modal now fully supports editing of statuses, updating done and cancelled dates, and creating new recurrences. See the [[Create or edit Task#Status|section on editing statuses]] for details and tips.
Expand Down
4 changes: 2 additions & 2 deletions docs/Queries/Filters.md
Original file line number Diff line number Diff line change
Expand Up @@ -476,7 +476,7 @@ For example:

```text
- [ ] I am blocking 🆔 12345
- [ ] I am not blocking ⛔ 12345
- [ ] I am not blocking ⛔ 12345
```

Note also:
Expand Down Expand Up @@ -508,7 +508,7 @@ For example:

```text
- [ ] I am not blocked 🆔 12345
- [ ] I am blocked ⛔ 12345
- [ ] I am blocked ⛔ 12345
```

Note also:
Expand Down
2 changes: 1 addition & 1 deletion docs/Reference/Task Formats/Tasks Emoji Format.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ For more information, see [[Recurring Tasks]].
<!-- snippet: DocsSamplesForTaskFormats.test.Serializer_Dependencies_tasksPluginEmoji-snippet.approved.md -->
```md
- [ ] #task do this first 🆔 dcf64c
- [ ] #task do this after first and some other task ⛔ dcf64c,0h17ye
- [ ] #task do this after first and some other task ⛔ dcf64c,0h17ye
```
<!-- endSnippet -->

Expand Down
2 changes: 1 addition & 1 deletion docs/Scripting/Task Properties.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ For more information, including adding your own customised statuses, see [[Statu
| `task.isRecurring` | `boolean` | `true` | `boolean` | `false` |
| `task.recurrenceRule` | `string` | `'every day when done'` | `string` | `''` |
| `task.tags` | `string[]` | `['#todo', '#health']` | `any[]` | `[]` |
| `task.originalMarkdown` | `string` | `' - [ ] Do exercises #todo #health 🆔 abcdef ⛔ 123456,abc123 🔼 🔁 every day when done ➕ 2023-07-01 🛫 2023-07-02 ⏳ 2023-07-03 📅 2023-07-04 ❌ 2023-07-06 ✅ 2023-07-05 ^dcf64c'` | `string` | `'- [/] minimal task'` |
| `task.originalMarkdown` | `string` | `' - [ ] Do exercises #todo #health 🆔 abcdef ⛔ 123456,abc123 🔼 🔁 every day when done ➕ 2023-07-01 🛫 2023-07-02 ⏳ 2023-07-03 📅 2023-07-04 ❌ 2023-07-06 ✅ 2023-07-05 ^dcf64c'` | `string` | `'- [/] minimal task'` |

<!-- placeholder to force blank line after included text --><!-- endInclude -->

Expand Down
2 changes: 1 addition & 1 deletion resources/sample_vaults/Tasks-Demo/Formats/Tasks Format.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
<!-- placeholder to force blank line before included text --><!-- include: DocsSamplesForTaskFormats.test.Serializer_Dependencies_tasksPluginEmoji-include.approved.md -->

- [ ] #task do this first 🆔 dcf64c
- [ ] #task do this after first and some other task ⛔ dcf64c,0h17ye
- [ ] #task do this after first and some other task ⛔ dcf64c,0h17ye

<!-- placeholder to force blank line after included text --><!-- endInclude -->

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Step 1:

Step 2:

- [ ] #task I am recurring task **step 2** step1 🔁 every day 📅 2024-02-12
- [ ] #task I am recurring task **step 2** ⛔ step1 🔁 every day 📅 2024-02-12

## Search

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,34 +3,34 @@
## Write the article

- [ ] #task Choose a topic 🆔 ya44g5
- [ ] #task Research the subject 🆔 g7317o ⛔ ya44g5
- [ ] #task Create an outline 🆔 rot7gb ⛔ g7317o
- [ ] #task Develop main points 🆔 mvplec ⛔ rot7gb
- [ ] #task Craft a conclusion 🆔 0wigip ⛔ mvplec
- [ ] #task Proofread and edit 🆔 5ti6bf ⛔ 0wigip
- [ ] #task Publish the article ⛔ 5ti6bf
- [ ] #task Research the subject 🆔 g7317o ⛔ ya44g5
- [ ] #task Create an outline 🆔 rot7gb ⛔ g7317o
- [ ] #task Develop main points 🆔 mvplec ⛔ rot7gb
- [ ] #task Craft a conclusion 🆔 0wigip ⛔ mvplec
- [ ] #task Proofread and edit 🆔 5ti6bf ⛔ 0wigip
- [ ] #task Publish the article ⛔ 5ti6bf

## Hyphens and underscores allowed

- [ ] #task A task with ID with underscore and hyphen 🆔 Is-A-Valid_ID
- [ ] #task A task that depends on task with ID with underscore and hyphen ⛔ Is-A-Valid_ID
- [ ] #task A task that depends on task with ID with underscore and hyphen ⛔ Is-A-Valid_ID

## Multiple dependencies

- [ ] #task Invite the guests 🆔 iv0euw
- [ ] #task Make the food 🆔 rukpy8
- [ ] #task Have a party 🆔 i38dxn ⛔ iv0euw,rukpy8
- [ ] #task Tidy up after party ⛔ i38dxn
- [ ] #task Have a party 🆔 i38dxn ⛔ iv0euw,rukpy8
- [ ] #task Tidy up after party ⛔ i38dxn

## No dependencies

- [ ] #task Do something on a different project

## Problem cases

- [ ] #task Cyclic Dependency 1 🆔 cyclic1 ⛔ cyclic2
- [ ] #task Cyclic Dependency 2 🆔 cyclic2 ⛔ cyclic1
- [ ] #task Depends on a non-existent task ⛔ doesnotexist
- [ ] #task Cyclic Dependency 1 🆔 cyclic1 ⛔ cyclic2
- [ ] #task Cyclic Dependency 2 🆔 cyclic2 ⛔ cyclic1
- [ ] #task Depends on a non-existent task ⛔ doesnotexist

---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ <h4 class="tasks-group-heading"><p>2023-07-04 Tuesday</p></h4>
data-tag-name="#todo">#todo</a> <a
href="#health" class="tag" target="_blank" rel="noopener"
data-tag-name="#health">#health</a></span></span><span class="task-id"><span> 🆔</span></span><span
class="task-dependsOn"><span></span></span><span class="task-priority"
class="task-dependsOn"><span></span></span><span class="task-priority"
data-task-priority="medium"><span> 🔼</span></span><span
class="task-recurring"><span> 🔁</span></span><span class="task-created"
data-task-created="past-far"><span></span></span><span
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ <h4 class="tasks-group-heading"><p>2023-07-04 Tuesday</p></h4>
data-tag-name="#todo">#todo</a> <a
href="#health" class="tag" target="_blank" rel="noopener"
data-tag-name="#health">#health</a></span></span><span
class="task-id"><span> 🆔 abcdef</span></span><span class="task-dependsOn"><span> 123456,abc123</span></span><span
class="task-id"><span> 🆔 abcdef</span></span><span class="task-dependsOn"><span> ⛔ 123456,abc123</span></span><span
class="task-priority" data-task-priority="medium"><span> 🔼</span></span><span
class="task-recurring"><span> 🔁 every day when done</span></span><span class="task-created"
data-task-created="past-far"><span> ➕ 2023-07-01</span></span><span
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ Save the HTML in `HTML from Query - short mode.html`

## Task

- [ ] #task Do exercises #todo #health 🆔 abcdef ⛔ 123456,abc123 🔼 🔁 every day when done ➕ 2023-07-01 🛫 2023-07-02 ⏳ 2023-07-03 📅 2023-07-04 ❌ 2023-07-06 ✅ 2023-07-05 ^dcf64c
- [ ] #task Do exercises #todo #health 🆔 abcdef ⛔ 123456,abc123 🔼 🔁 every day when done ➕ 2023-07-01 🛫 2023-07-02 ⏳ 2023-07-03 📅 2023-07-04 ❌ 2023-07-06 ✅ 2023-07-05 ^dcf64c

## Query - Full Mode

Expand Down
2 changes: 1 addition & 1 deletion src/TaskSerializer/DefaultTaskSerializer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ export const DEFAULT_SYMBOLS: DefaultTaskSerializerSymbols = {
doneDateSymbol: '✅',
cancelledDateSymbol: '❌',
recurrenceSymbol: '🔁',
dependsOnSymbol: '⛔️', // TODO Remove Variant Selector 16 from this string
dependsOnSymbol: '⛔',
idSymbol: '🆔',
TaskFormatRegularExpressions: {
// The following regex's end with `$` because they will be matched and
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,32 +5,32 @@
| `- [ ] No dependency - TODO` | ❌ false | ❌ false |
| `- [x] No dependency - DONE` | ❌ false | ❌ false |
| `- [ ] scenario 1 - TODO depends on TODO 🆔 scenario1` | ✅ true | ❌ false |
| `- [ ] scenario 1 - TODO depends on TODO ⛔ scenario1` | ❌ false | ✅ true |
| `- [ ] scenario 1 - TODO depends on TODO ⛔ scenario1` | ❌ false | ✅ true |
| `- [x] scenario 2 - TODO depends on DONE 🆔 scenario2` | ❌ false | ❌ false |
| `- [ ] scenario 2 - TODO depends on DONE ⛔ scenario2` | ❌ false | ❌ false |
| `- [ ] scenario 2 - TODO depends on DONE ⛔ scenario2` | ❌ false | ❌ false |
| `- [ ] scenario 3 - DONE depends on TODO 🆔 scenario3` | ❌ false | ❌ false |
| `- [x] scenario 3 - DONE depends on TODO ⛔ scenario3` | ❌ false | ❌ false |
| `- [x] scenario 3 - DONE depends on TODO ⛔ scenario3` | ❌ false | ❌ false |
| `- [x] scenario 4 - DONE depends on DONE 🆔 scenario4` | ❌ false | ❌ false |
| `- [x] scenario 4 - DONE depends on DONE ⛔ scenario4` | ❌ false | ❌ false |
| `- [ ] scenario 5 - TODO depends on non-existing ID ⛔ nosuchid` | ❌ false | ❌ false |
| `- [ ] scenario 6 - TODO depends on self 🆔 self ⛔ self` | ✅ true | ✅ true |
| `- [x] scenario 4 - DONE depends on DONE ⛔ scenario4` | ❌ false | ❌ false |
| `- [ ] scenario 5 - TODO depends on non-existing ID ⛔ nosuchid` | ❌ false | ❌ false |
| `- [ ] scenario 6 - TODO depends on self 🆔 self ⛔ self` | ✅ true | ✅ true |
| `- [x] scenario 7 - task with duplicated id - this is DONE - 🆔 scenario7` | ❌ false | ❌ false |
| `- [ ] scenario 7 - task with duplicated id - this is TODO - and is blocking - 🆔 scenario7` | ✅ true | ❌ false |
| `- [ ] scenario 7 - TODO depends on id that is duplicated - ensure all tasks are checked - ⛔ scenario7` | ❌ false | ✅ true |
| `- [ ] scenario 8 - mutually dependant 🆔 scenario8a ⛔ scenario8b` | ✅ true | ✅ true |
| `- [ ] scenario 8 - mutually dependant 🆔 scenario8b ⛔ scenario8a` | ✅ true | ✅ true |
| `- [ ] scenario 9 - cyclic dependency 🆔 scenario9a ⛔ scenario9c` | ✅ true | ✅ true |
| `- [ ] scenario 9 - cyclic dependency 🆔 scenario9b ⛔ scenario9a` | ✅ true | ✅ true |
| `- [ ] scenario 9 - cyclic dependency 🆔 scenario9c ⛔ scenario9b` | ✅ true | ✅ true |
| `- [ ] scenario 7 - TODO depends on id that is duplicated - ensure all tasks are checked - ⛔ scenario7` | ❌ false | ✅ true |
| `- [ ] scenario 8 - mutually dependant 🆔 scenario8a ⛔ scenario8b` | ✅ true | ✅ true |
| `- [ ] scenario 8 - mutually dependant 🆔 scenario8b ⛔ scenario8a` | ✅ true | ✅ true |
| `- [ ] scenario 9 - cyclic dependency 🆔 scenario9a ⛔ scenario9c` | ✅ true | ✅ true |
| `- [ ] scenario 9 - cyclic dependency 🆔 scenario9b ⛔ scenario9a` | ✅ true | ✅ true |
| `- [ ] scenario 9 - cyclic dependency 🆔 scenario9c ⛔ scenario9b` | ✅ true | ✅ true |
| `- [ ] scenario 10 - multiple dependencies TODO - 🆔 scenario10a` | ✅ true | ❌ false |
| `- [/] scenario 10 - multiple dependencies IN_PROGRESS - 🆔 scenario10b` | ✅ true | ❌ false |
| `- [x] scenario 10 - multiple dependencies DONE - 🆔 scenario10c` | ❌ false | ❌ false |
| `- [-] scenario 10 - multiple dependencies CANCELLED - 🆔 scenario10d` | ❌ false | ❌ false |
| `- [Q] scenario 10 - multiple dependencies NON_TASK - 🆔 scenario10e` | ❌ false | ❌ false |
| `- [ ] scenario 10 - multiple dependencies - ⛔ scenario10a,scenario10b,scenario10c,scenario10d,scenario10e` | ❌ false | ✅ true |
| `- [ ] scenario 10 - multiple dependencies - ⛔ scenario10a,scenario10b,scenario10c,scenario10d,scenario10e` | ❌ false | ✅ true |
| `- [ ] scenario 11 - indirect dependency - indirect blocking of scenario11c ignored - 🆔 scenario11a` | ❌ false | ❌ false |
| `- [x] scenario 11 - indirect dependency - DONE - 🆔 scenario11b ⛔ scenario11a` | ❌ false | ❌ false |
| `- [ ] scenario 11 - indirect dependency - indirect blocking of scenario11a ignored - 🆔 scenario11c ⛔ scenario11b` | ❌ false | ❌ false |
| `- [x] scenario 11 - indirect dependency - DONE - 🆔 scenario11b ⛔ scenario11a` | ❌ false | ❌ false |
| `- [ ] scenario 11 - indirect dependency - indirect blocking of scenario11a ignored - 🆔 scenario11c ⛔ scenario11b` | ❌ false | ❌ false |


<!-- placeholder to force blank line after included text -->
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
````text
```tasks
# These instructions need to be all on one line:
(description includes 🔺) OR (description includes ⏫) OR (description includes 🔼) OR (description includes 🔽) OR (description includes ⏬) OR (description includes 🛫) OR (description includes ➕) OR (description includes ⏳) OR (description includes 📅) OR (description includes ✅) OR (description includes ❌) OR (description includes 🔁) OR (description includes ⛔) OR (description includes 🆔)
(description includes 🔺) OR (description includes ⏫) OR (description includes 🔼) OR (description includes 🔽) OR (description includes ⏬) OR (description includes 🛫) OR (description includes ➕) OR (description includes ⏳) OR (description includes 📅) OR (description includes ✅) OR (description includes ❌) OR (description includes 🔁) OR (description includes ⛔) OR (description includes 🆔)

# Optionally, uncomment this line and exclude your templates location
# path does not include _templates
Expand Down
2 changes: 1 addition & 1 deletion tests/Query/Filter/BlockingField.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ describe('blocked', () => {
});

it('should not treat completed tasks as blocked', () => {
const doneTaskDependingOnBlocking = fromLine({ line: `- [x] Done ⛔ ${blockingId}` });
const doneTaskDependingOnBlocking = fromLine({ line: `- [x] Done ⛔ ${blockingId}` });
const allTasks = [blocking, doneTaskDependingOnBlocking];
expect(isNotBlocked).toMatchTaskInTaskList(doneTaskDependingOnBlocking, allTasks);
});
Expand Down
Loading

0 comments on commit f138b16

Please sign in to comment.