-- rsc/tmp#1 --
Title: Dummy issue with dummy title
State: closed
Assignee: 
Closed: 2024-06-17 14:56:22
Labels: none
Milestone: Granite
URL: https://github.com/rsc/tmp/issues/1

Reported by rsc (2015-01-07 23:11:46)

	For testing.

* rsc changed title (2015-01-07 23:12:19)
  - Dummy issue
  + Dummy issue with dummy title

Comment by rsc (2015-01-07 23:12:37)

	Hello, world.

Comment by rsc (2015-01-07 23:12:49)

	Another comment.

* rsc assigned rsc (2015-01-07 23:13:10)

* rsc unassigned rsc (2015-01-07 23:13:16)

* rsc labeled mylabel (2015-01-07 23:13:25)

* rsc labeled -mylabel (2015-01-07 23:13:30)

* rsc unlabeled mylabel (2015-01-07 23:13:30)

* rsc added to milestone Granite (2015-01-07 23:14:57)

* rsc added to milestone Quartz (2015-01-07 23:15:04)

* rsc removed from milestone Granite (2015-01-07 23:15:04)

* rsc labeled none (2015-01-07 23:16:22)

* rsc unlabeled -mylabel (2015-01-07 23:16:22)

* rsc added to milestone Granite (2015-01-07 23:16:36)

* rsc removed from milestone Quartz (2015-01-07 23:16:36)

* rsc added to milestone Quartz (2015-04-09 20:12:49)

* rsc removed from milestone Granite (2015-04-09 20:12:49)

* rsc added to milestone Granite (2015-04-09 20:14:18)

* rsc removed from milestone Quartz (2015-04-09 20:14:18)

Comment by rsc (2015-04-09 20:14:18)

	Granite is harder.

* rsc closed (2024-06-17 14:56:22)
-- rsc/tmp#2 --
Title: New dummy issue
State: closed
Assignee: 
Closed: 2024-06-17 14:56:28
Labels: 
Milestone: Granite
URL: https://github.com/rsc/tmp/issues/2

Reported by rsc (2015-01-07 23:21:49)

* rsc added to milestone Granite (2015-01-07 23:22:25)

Comment by rsc (2015-04-09 11:44:11)

	hello world

* rsc added to milestone Quartz (2015-04-09 11:45:36)

* rsc removed from milestone Granite (2015-04-09 11:45:36)

Comment by rsc (2015-04-09 11:45:36)

	hello again

* rsc added to milestone Granite (2015-04-09 11:45:52)

* rsc removed from milestone Quartz (2015-04-09 11:45:52)

* rsc labeled xyz (2015-04-09 19:40:21)

* rsc unlabeled xyz (2015-04-09 20:04:44)

* rsc labeled abcd (2015-04-09 20:05:03)

* rsc added to milestone Quartz (2015-04-09 20:12:48)

* rsc removed from milestone Granite (2015-04-09 20:12:48)

* rsc added to milestone Granite (2015-04-09 20:14:18)

* rsc removed from milestone Quartz (2015-04-09 20:14:18)

Comment by rsc (2015-04-09 20:14:18)

	Granite is harder.

* rsc labeled foo (2015-04-10 12:16:32)

* rsc unlabeled abcd (2015-04-28 15:22:13)

* rsc unlabeled foo (2015-04-28 15:22:13)

* rsc labeled abcde (2015-04-28 15:22:19)

* rsc unlabeled abcde (2015-04-28 15:22:40)

* rsc closed (2024-06-17 14:56:29)
-- rsc/tmp#3 --
Title: yet another dummy issue
State: open
Assignee: 
Labels: 
Milestone: 
URL: https://github.com/rsc/tmp/issues/3

Reported by rsc (2015-01-07 23:35:58)

	lots of these tonight.

Comment by rsc (2024-06-17 14:58:48)

	**Similar Issues**
	
	 - [New dummy issue #2](https://github.com/rsc/tmp/issues/2) <!-- 
	score=0.83910 -->
	
	<sub>(Emoji vote if this was helpful or unhelpful; more detailed 
	feedback welcome in [this 
	discussion](https://github.com/golang/go/discussions/67901).)</sub>
-- rsc/tmp#4 --
Title: issue the fourth
State: closed
Assignee: 
Closed: 2015-01-07 23:40:50
Labels: 
Milestone: 
URL: https://github.com/rsc/tmp/issues/4

Reported by rsc (2015-01-07 23:40:39)

	more work to do

* rsc closed (2015-01-07 23:40:50)
-- rsc/tmp#5 --
Title: nabgure arj vffhr
State: open
Assignee: 
Labels: abc.def foo
Milestone: Granite
URL: https://github.com/rsc/tmp/issues/5

Reported by rsc (2015-04-09 11:46:47)

	just like creating issues

* rsc added to milestone Quartz (2015-04-09 11:46:47)

* rsc added to milestone Granite (2015-04-10 12:16:33)

* rsc labeled foo (2015-04-10 12:16:33)

* rsc removed from milestone Quartz (2015-04-10 12:16:33)

* rsc labeled abc.def (2019-04-09 14:36:16)

Comment by rsc (2024-06-12 18:02:54)

	Pbzzrag!

Comment by rsc (2024-06-12 18:14:43)

	testing. rot13 is the best.

* rsc changed title (2024-06-12 18:16:17)
  - another new issue
  + nabgure arj vffhr

Comment by rsc (2024-06-12 18:16:17)

	testing. rot13 is the best.
-- rsc/tmp#6 --
Title: grpcbench: fix HTTP/2 benchmark, add HTTP/1.1
State: closed
Assignee: 
Closed: 2017-01-12 08:53:07
Labels: 
Milestone: 
URL: https://github.com/rsc/tmp/pull/6

Reported by adg (2017-01-11 20:32:15)

* rsc closed (2017-01-12 08:53:07)

* rsc merged in commit a5a83b2 (2017-01-12 08:53:07)

	Author: Andrew Gerrand <adg@golang.org> 2017-01-11 20:31:02
	Committer: Russ Cox <rsc@golang.org> 2017-01-12 08:53:06

	grpcbench: fix HTTP/2 benchmark, add HTTP/1.1

* rsc referenced in commit a5a83b2 (2017-01-12 08:53:07)

	Author: Andrew Gerrand <adg@golang.org> 2017-01-11 20:31:02
	Committer: Russ Cox <rsc@golang.org> 2017-01-12 08:53:06

	grpcbench: fix HTTP/2 benchmark, add HTTP/1.1

Comment by rsc (2017-01-12 08:53:58)

	Merged without reviewing. Added you as collaborator for the repo.
-- rsc/tmp#7 --
Title: fieldtrack: add testing docs
State: closed
Assignee: 
Closed: 2017-03-06 19:43:47
Labels: 
Milestone: 
URL: https://github.com/rsc/tmp/pull/7

Reported by mdempsky (2017-03-06 17:26:19)

	I have to always look up either the instructions you sent me or hope 
	it's still in my shell history. I just spent way too long confused 
	because somehow the -k flag was truncated in my history, so of course 
	the test kept failing.

* rsc closed (2017-03-06 19:43:47)

* rsc merged in commit 1238e6c (2017-03-06 19:43:47)

	Author: Matthew Dempsky <mdempsky@google.com> 2017-03-06 17:24:55
	Committer: Russ Cox <rsc@golang.org> 2017-03-06 19:43:46

	fieldtrack: add testing docs

* rsc referenced in commit 1238e6c (2017-03-06 19:43:47)

	Author: Matthew Dempsky <mdempsky@google.com> 2017-03-06 17:24:55
	Committer: Russ Cox <rsc@golang.org> 2017-03-06 19:43:46

	fieldtrack: add testing docs
-- rsc/tmp#8 --
Title: go2asm prints nothing
State: open
Assignee: 
Labels: 
Milestone: 
URL: https://github.com/rsc/tmp/issues/8

Reported by prestonvanloon (2021-05-19 14:48:46)

	I followed the example for go2asm and there was no output.
	
	```
	go version go1.16.3 linux/amd64
	```

Comment by JAicewizard (2021-06-11 15:47:00)

	I have the same problem.
	
	I would like to edit the assembly of a function to verify potential 
	optimization improvements, this tool seems to be the only one that 
	should allow me to do this.
-- rsc/tmp#9 --
Title: go2asm: update startTextRE for go1.17 assembly output
State: open
Assignee: 
Labels: 
Milestone: 
URL: https://github.com/rsc/tmp/pull/9

Reported by emcfarlane (2022-03-09 08:19:45)

	Adjusted regex on ouptut from go1.17.
	
	Fix for https://github.com/rsc/tmp/issues/8
-- rsc/tmp#10 --
Title: build(deps): bump golang.org/x/text from 0.3.6 to 0.3.8 in /rmplay
State: open
Assignee: 
Labels: dependencies
Milestone: 
URL: https://github.com/rsc/tmp/pull/10

Reported by dependabot[bot] (2023-02-23 02:15:03)

	Bumps [golang.org/x/text](https://github.com/golang/text) from 0.3.6 
	to 0.3.8.
	<details>
	<summary>Commits</summary>
	<ul>
	<li><a 
	href="https://github.com/golang/text/commit/434eadcdbc3b0256971992e8c7
	0027278364c72c"><code>434eadc</code></a> language: reject excessively 
	large Accept-Language strings</li>
	<li><a 
	href="https://github.com/golang/text/commit/23407e72ed5b895a2dfd230aec
	777f4fbe026d6a"><code>23407e7</code></a> go.mod: ignore cyclic 
	dependency for tagging</li>
	<li><a 
	href="https://github.com/golang/text/commit/b18d3dd8a4b426ebedcf279b59
	3e85ac4985b9d3"><code>b18d3dd</code></a> secure/precis: replace 
	bytes.Compare with bytes.Equal</li>
	<li><a 
	href="https://github.com/golang/text/commit/795e854ff348c9cac4fd0033ce
	04c417705dd0bb"><code>795e854</code></a> all: replace io/ioutil with 
	io and os package</li>
	<li><a 
	href="https://github.com/golang/text/commit/b0ca10ff35f1325c7d0ac7830f
	e3f036bd72d8f9"><code>b0ca10f</code></a> internal/language: bump 
	script types to uint16 and update registry</li>
	<li><a 
	href="https://github.com/golang/text/commit/ba9b0e1d4b03523c708709935f
	bc961124b6967b"><code>ba9b0e1</code></a> go.mod: update x/tools to 
	HEAD</li>
	<li><a 
	href="https://github.com/golang/text/commit/d03b41800055b01e3895b1e047
	af09733c93bf63"><code>d03b418</code></a> A+C: delete AUTHORS and 
	CONTRIBUTORS</li>
	<li><a 
	href="https://github.com/golang/text/commit/b4bca84b03619dba0065737525
	9024a7f8ae6712"><code>b4bca84</code></a> language/display: fix Tag 
	method comment</li>
	<li><a 
	href="https://github.com/golang/text/commit/ea49e3e2d5b3f1518081d8bc53
	ffefc8bc60ecec"><code>ea49e3e</code></a> go.mod: update x/tools to 
	HEAD</li>
	<li><a 
	href="https://github.com/golang/text/commit/78819d01d041a94e055bbaa2d9
	5e5e4d49e8f8a0"><code>78819d0</code></a> go.mod: update to 
	golang.org/x/text v0.1.10</li>
	<li>Additional commits viewable in <a 
	href="https://github.com/golang/text/compare/v0.3.6...v0.3.8">compare 
	view</a></li>
	</ul>
	</details>
	<br />
	
	
	[![Dependabot compatibility 
	score](https://dependabot-badges.githubapp.com/badges/compatibility_sc
	ore?dependency-name=golang.org/x/text&package-manager=go_modules&previ
	ous-version=0.3.6&new-version=0.3.8)](https://docs.github.com/en/githu
	b/managing-security-vulnerabilities/about-dependabot-security-updates#
	about-compatibility-scores)
	
	You can trigger a rebase of this PR by commenting `@dependabot 
	rebase`.
	
	[//]: # (dependabot-automerge-start)
	[//]: # (dependabot-automerge-end)
	
	---
	
	<details>
	<summary>Dependabot commands and options</summary>
	<br />
	
	You can trigger Dependabot actions by commenting on this PR:
	- `@dependabot rebase` will rebase this PR
	- `@dependabot recreate` will recreate this PR, overwriting any edits 
	that have been made to it
	- `@dependabot merge` will merge this PR after your CI passes on it
	- `@dependabot squash and merge` will squash and merge this PR after 
	your CI passes on it
	- `@dependabot cancel merge` will cancel a previously requested merge 
	and block automerging
	- `@dependabot reopen` will reopen this PR if it is closed
	- `@dependabot close` will close this PR and stop Dependabot 
	recreating it. You can achieve the same result by closing it manually
	- `@dependabot ignore this major version` will close this PR and stop 
	Dependabot creating any more for this major version (unless you 
	reopen the PR or upgrade to it yourself)
	- `@dependabot ignore this minor version` will close this PR and stop 
	Dependabot creating any more for this minor version (unless you 
	reopen the PR or upgrade to it yourself)
	- `@dependabot ignore this dependency` will close this PR and stop 
	Dependabot creating any more for this dependency (unless you reopen 
	the PR or upgrade to it yourself)
	- `@dependabot use these labels` will set the current labels as the 
	default for future PRs for this repo and language
	- `@dependabot use these reviewers` will set the current reviewers as 
	the default for future PRs for this repo and language
	- `@dependabot use these assignees` will set the current assignees as 
	the default for future PRs for this repo and language
	- `@dependabot use this milestone` will set the current milestone as 
	the default for future PRs for this repo and language
	
	You can disable automated security fix PRs for this repo from the 
	[Security Alerts page](https://github.com/rsc/tmp/network/alerts).
	
	</details>> **Note**
	> Automatic rebases have been disabled on this pull request as it has 
	been open for over 30 days.

* dependabot[bot] labeled dependencies (2023-02-23 02:15:04)
-- rsc/tmp#11 --
Title: build(deps): bump golang.org/x/net from 0.0.0-20200320220750-118fecf932d8 to 0.7.0 in /html2md
State: open
Assignee: 
Labels: dependencies
Milestone: 
URL: https://github.com/rsc/tmp/pull/11

Reported by dependabot[bot] (2023-02-24 19:17:13)

	Bumps [golang.org/x/net](https://github.com/golang/net) from 
	0.0.0-20200320220750-118fecf932d8 to 0.7.0.
	<details>
	<summary>Commits</summary>
	<ul>
	<li>See full diff in <a 
	href="https://github.com/golang/net/commits/v0.7.0">compare 
	view</a></li>
	</ul>
	</details>
	<br />
	
	
	[![Dependabot compatibility 
	score](https://dependabot-badges.githubapp.com/badges/compatibility_sc
	ore?dependency-name=golang.org/x/net&package-manager=go_modules&previo
	us-version=0.0.0-20200320220750-118fecf932d8&new-version=0.7.0)](https
	://docs.github.com/en/github/managing-security-vulnerabilities/about-d
	ependabot-security-updates#about-compatibility-scores)
	
	You can trigger a rebase of this PR by commenting `@dependabot 
	rebase`.
	
	[//]: # (dependabot-automerge-start)
	[//]: # (dependabot-automerge-end)
	
	---
	
	<details>
	<summary>Dependabot commands and options</summary>
	<br />
	
	You can trigger Dependabot actions by commenting on this PR:
	- `@dependabot rebase` will rebase this PR
	- `@dependabot recreate` will recreate this PR, overwriting any edits 
	that have been made to it
	- `@dependabot merge` will merge this PR after your CI passes on it
	- `@dependabot squash and merge` will squash and merge this PR after 
	your CI passes on it
	- `@dependabot cancel merge` will cancel a previously requested merge 
	and block automerging
	- `@dependabot reopen` will reopen this PR if it is closed
	- `@dependabot close` will close this PR and stop Dependabot 
	recreating it. You can achieve the same result by closing it manually
	- `@dependabot ignore this major version` will close this PR and stop 
	Dependabot creating any more for this major version (unless you 
	reopen the PR or upgrade to it yourself)
	- `@dependabot ignore this minor version` will close this PR and stop 
	Dependabot creating any more for this minor version (unless you 
	reopen the PR or upgrade to it yourself)
	- `@dependabot ignore this dependency` will close this PR and stop 
	Dependabot creating any more for this dependency (unless you reopen 
	the PR or upgrade to it yourself)
	- `@dependabot use these labels` will set the current labels as the 
	default for future PRs for this repo and language
	- `@dependabot use these reviewers` will set the current reviewers as 
	the default for future PRs for this repo and language
	- `@dependabot use these assignees` will set the current assignees as 
	the default for future PRs for this repo and language
	- `@dependabot use this milestone` will set the current milestone as 
	the default for future PRs for this repo and language
	
	You can disable automated security fix PRs for this repo from the 
	[Security Alerts page](https://github.com/rsc/tmp/network/alerts).
	
	</details>> **Note**
	> Automatic rebases have been disabled on this pull request as it has 
	been open for over 30 days.

* dependabot[bot] labeled dependencies (2023-02-24 19:17:14)
-- rsc/tmp#12 --
Title: build(deps): bump golang.org/x/net from 0.0.0-20200707034311-ab3426394381 to 0.7.0 in /unsafeconv
State: open
Assignee: 
Labels: dependencies
Milestone: 
URL: https://github.com/rsc/tmp/pull/12

Reported by dependabot[bot] (2023-02-24 19:57:52)

	Bumps [golang.org/x/net](https://github.com/golang/net) from 
	0.0.0-20200707034311-ab3426394381 to 0.7.0.
	<details>
	<summary>Commits</summary>
	<ul>
	<li>See full diff in <a 
	href="https://github.com/golang/net/commits/v0.7.0">compare 
	view</a></li>
	</ul>
	</details>
	<br />
	
	
	[![Dependabot compatibility 
	score](https://dependabot-badges.githubapp.com/badges/compatibility_sc
	ore?dependency-name=golang.org/x/net&package-manager=go_modules&previo
	us-version=0.0.0-20200707034311-ab3426394381&new-version=0.7.0)](https
	://docs.github.com/en/github/managing-security-vulnerabilities/about-d
	ependabot-security-updates#about-compatibility-scores)
	
	You can trigger a rebase of this PR by commenting `@dependabot 
	rebase`.
	
	[//]: # (dependabot-automerge-start)
	[//]: # (dependabot-automerge-end)
	
	---
	
	<details>
	<summary>Dependabot commands and options</summary>
	<br />
	
	You can trigger Dependabot actions by commenting on this PR:
	- `@dependabot rebase` will rebase this PR
	- `@dependabot recreate` will recreate this PR, overwriting any edits 
	that have been made to it
	- `@dependabot merge` will merge this PR after your CI passes on it
	- `@dependabot squash and merge` will squash and merge this PR after 
	your CI passes on it
	- `@dependabot cancel merge` will cancel a previously requested merge 
	and block automerging
	- `@dependabot reopen` will reopen this PR if it is closed
	- `@dependabot close` will close this PR and stop Dependabot 
	recreating it. You can achieve the same result by closing it manually
	- `@dependabot ignore this major version` will close this PR and stop 
	Dependabot creating any more for this major version (unless you 
	reopen the PR or upgrade to it yourself)
	- `@dependabot ignore this minor version` will close this PR and stop 
	Dependabot creating any more for this minor version (unless you 
	reopen the PR or upgrade to it yourself)
	- `@dependabot ignore this dependency` will close this PR and stop 
	Dependabot creating any more for this dependency (unless you reopen 
	the PR or upgrade to it yourself)
	- `@dependabot use these labels` will set the current labels as the 
	default for future PRs for this repo and language
	- `@dependabot use these reviewers` will set the current reviewers as 
	the default for future PRs for this repo and language
	- `@dependabot use these assignees` will set the current assignees as 
	the default for future PRs for this repo and language
	- `@dependabot use this milestone` will set the current milestone as 
	the default for future PRs for this repo and language
	
	You can disable automated security fix PRs for this repo from the 
	[Security Alerts page](https://github.com/rsc/tmp/network/alerts).
	
	</details>> **Note**
	> Automatic rebases have been disabled on this pull request as it has 
	been open for over 30 days.

* dependabot[bot] labeled dependencies (2023-02-24 19:57:53)
-- rsc/tmp#13 --
Title: build(deps): bump golang.org/x/net from 0.0.0-20210503060351-7fd8e65b6420 to 0.7.0 in /rmplay
State: open
Assignee: 
Labels: dependencies
Milestone: 
URL: https://github.com/rsc/tmp/pull/13

Reported by dependabot[bot] (2023-02-25 01:27:00)

	Bumps [golang.org/x/net](https://github.com/golang/net) from 
	0.0.0-20210503060351-7fd8e65b6420 to 0.7.0.
	<details>
	<summary>Commits</summary>
	<ul>
	<li>See full diff in <a 
	href="https://github.com/golang/net/commits/v0.7.0">compare 
	view</a></li>
	</ul>
	</details>
	<br />
	
	
	[![Dependabot compatibility 
	score](https://dependabot-badges.githubapp.com/badges/compatibility_sc
	ore?dependency-name=golang.org/x/net&package-manager=go_modules&previo
	us-version=0.0.0-20210503060351-7fd8e65b6420&new-version=0.7.0)](https
	://docs.github.com/en/github/managing-security-vulnerabilities/about-d
	ependabot-security-updates#about-compatibility-scores)
	
	You can trigger a rebase of this PR by commenting `@dependabot 
	rebase`.
	
	[//]: # (dependabot-automerge-start)
	[//]: # (dependabot-automerge-end)
	
	---
	
	<details>
	<summary>Dependabot commands and options</summary>
	<br />
	
	You can trigger Dependabot actions by commenting on this PR:
	- `@dependabot rebase` will rebase this PR
	- `@dependabot recreate` will recreate this PR, overwriting any edits 
	that have been made to it
	- `@dependabot merge` will merge this PR after your CI passes on it
	- `@dependabot squash and merge` will squash and merge this PR after 
	your CI passes on it
	- `@dependabot cancel merge` will cancel a previously requested merge 
	and block automerging
	- `@dependabot reopen` will reopen this PR if it is closed
	- `@dependabot close` will close this PR and stop Dependabot 
	recreating it. You can achieve the same result by closing it manually
	- `@dependabot ignore this major version` will close this PR and stop 
	Dependabot creating any more for this major version (unless you 
	reopen the PR or upgrade to it yourself)
	- `@dependabot ignore this minor version` will close this PR and stop 
	Dependabot creating any more for this minor version (unless you 
	reopen the PR or upgrade to it yourself)
	- `@dependabot ignore this dependency` will close this PR and stop 
	Dependabot creating any more for this dependency (unless you reopen 
	the PR or upgrade to it yourself)
	- `@dependabot use these labels` will set the current labels as the 
	default for future PRs for this repo and language
	- `@dependabot use these reviewers` will set the current reviewers as 
	the default for future PRs for this repo and language
	- `@dependabot use these assignees` will set the current assignees as 
	the default for future PRs for this repo and language
	- `@dependabot use this milestone` will set the current milestone as 
	the default for future PRs for this repo and language
	
	You can disable automated security fix PRs for this repo from the 
	[Security Alerts page](https://github.com/rsc/tmp/network/alerts).
	
	</details>> **Note**
	> Automatic rebases have been disabled on this pull request as it has 
	been open for over 30 days.

* dependabot[bot] labeled dependencies (2023-02-25 01:27:01)
-- rsc/tmp#14 --
Title: build(deps): bump golang.org/x/sys from 0.0.0-20200812155832-6a926be9bd1d to 0.1.0 in /unsafeconv
State: open
Assignee: 
Labels: dependencies
Milestone: 
URL: https://github.com/rsc/tmp/pull/14

Reported by dependabot[bot] (2023-02-25 01:29:40)

	Bumps [golang.org/x/sys](https://github.com/golang/sys) from 
	0.0.0-20200812155832-6a926be9bd1d to 0.1.0.
	<details>
	<summary>Commits</summary>
	<ul>
	<li>See full diff in <a 
	href="https://github.com/golang/sys/commits/v0.1.0">compare 
	view</a></li>
	</ul>
	</details>
	<br />
	
	
	[![Dependabot compatibility 
	score](https://dependabot-badges.githubapp.com/badges/compatibility_sc
	ore?dependency-name=golang.org/x/sys&package-manager=go_modules&previo
	us-version=0.0.0-20200812155832-6a926be9bd1d&new-version=0.1.0)](https
	://docs.github.com/en/github/managing-security-vulnerabilities/about-d
	ependabot-security-updates#about-compatibility-scores)
	
	You can trigger a rebase of this PR by commenting `@dependabot 
	rebase`.
	
	[//]: # (dependabot-automerge-start)
	[//]: # (dependabot-automerge-end)
	
	---
	
	<details>
	<summary>Dependabot commands and options</summary>
	<br />
	
	You can trigger Dependabot actions by commenting on this PR:
	- `@dependabot rebase` will rebase this PR
	- `@dependabot recreate` will recreate this PR, overwriting any edits 
	that have been made to it
	- `@dependabot merge` will merge this PR after your CI passes on it
	- `@dependabot squash and merge` will squash and merge this PR after 
	your CI passes on it
	- `@dependabot cancel merge` will cancel a previously requested merge 
	and block automerging
	- `@dependabot reopen` will reopen this PR if it is closed
	- `@dependabot close` will close this PR and stop Dependabot 
	recreating it. You can achieve the same result by closing it manually
	- `@dependabot ignore this major version` will close this PR and stop 
	Dependabot creating any more for this major version (unless you 
	reopen the PR or upgrade to it yourself)
	- `@dependabot ignore this minor version` will close this PR and stop 
	Dependabot creating any more for this minor version (unless you 
	reopen the PR or upgrade to it yourself)
	- `@dependabot ignore this dependency` will close this PR and stop 
	Dependabot creating any more for this dependency (unless you reopen 
	the PR or upgrade to it yourself)
	- `@dependabot use these labels` will set the current labels as the 
	default for future PRs for this repo and language
	- `@dependabot use these reviewers` will set the current reviewers as 
	the default for future PRs for this repo and language
	- `@dependabot use these assignees` will set the current assignees as 
	the default for future PRs for this repo and language
	- `@dependabot use this milestone` will set the current milestone as 
	the default for future PRs for this repo and language
	
	You can disable automated security fix PRs for this repo from the 
	[Security Alerts page](https://github.com/rsc/tmp/network/alerts).
	
	</details>> **Note**
	> Automatic rebases have been disabled on this pull request as it has 
	been open for over 30 days.

* dependabot[bot] labeled dependencies (2023-02-25 01:29:41)
-- rsc/tmp#15 --
Title: build(deps): bump golang.org/x/sys from 0.0.0-20210806184541-e5e7981a1069 to 0.1.0 in /rmplay
State: open
Assignee: 
Labels: dependencies
Milestone: 
URL: https://github.com/rsc/tmp/pull/15

Reported by dependabot[bot] (2023-02-25 04:24:25)

	Bumps [golang.org/x/sys](https://github.com/golang/sys) from 
	0.0.0-20210806184541-e5e7981a1069 to 0.1.0.
	<details>
	<summary>Commits</summary>
	<ul>
	<li>See full diff in <a 
	href="https://github.com/golang/sys/commits/v0.1.0">compare 
	view</a></li>
	</ul>
	</details>
	<br />
	
	
	[![Dependabot compatibility 
	score](https://dependabot-badges.githubapp.com/badges/compatibility_sc
	ore?dependency-name=golang.org/x/sys&package-manager=go_modules&previo
	us-version=0.0.0-20210806184541-e5e7981a1069&new-version=0.1.0)](https
	://docs.github.com/en/github/managing-security-vulnerabilities/about-d
	ependabot-security-updates#about-compatibility-scores)
	
	You can trigger a rebase of this PR by commenting `@dependabot 
	rebase`.
	
	[//]: # (dependabot-automerge-start)
	[//]: # (dependabot-automerge-end)
	
	---
	
	<details>
	<summary>Dependabot commands and options</summary>
	<br />
	
	You can trigger Dependabot actions by commenting on this PR:
	- `@dependabot rebase` will rebase this PR
	- `@dependabot recreate` will recreate this PR, overwriting any edits 
	that have been made to it
	- `@dependabot merge` will merge this PR after your CI passes on it
	- `@dependabot squash and merge` will squash and merge this PR after 
	your CI passes on it
	- `@dependabot cancel merge` will cancel a previously requested merge 
	and block automerging
	- `@dependabot reopen` will reopen this PR if it is closed
	- `@dependabot close` will close this PR and stop Dependabot 
	recreating it. You can achieve the same result by closing it manually
	- `@dependabot ignore this major version` will close this PR and stop 
	Dependabot creating any more for this major version (unless you 
	reopen the PR or upgrade to it yourself)
	- `@dependabot ignore this minor version` will close this PR and stop 
	Dependabot creating any more for this minor version (unless you 
	reopen the PR or upgrade to it yourself)
	- `@dependabot ignore this dependency` will close this PR and stop 
	Dependabot creating any more for this dependency (unless you reopen 
	the PR or upgrade to it yourself)
	- `@dependabot use these labels` will set the current labels as the 
	default for future PRs for this repo and language
	- `@dependabot use these reviewers` will set the current reviewers as 
	the default for future PRs for this repo and language
	- `@dependabot use these assignees` will set the current assignees as 
	the default for future PRs for this repo and language
	- `@dependabot use this milestone` will set the current milestone as 
	the default for future PRs for this repo and language
	
	You can disable automated security fix PRs for this repo from the 
	[Security Alerts page](https://github.com/rsc/tmp/network/alerts).
	
	</details>> **Note**
	> Automatic rebases have been disabled on this pull request as it has 
	been open for over 30 days.

* dependabot[bot] labeled dependencies (2023-02-25 04:24:26)
-- rsc/tmp#16 --
Title: demo issue
State: open
Assignee: 
Labels: 
Milestone: 
URL: https://github.com/rsc/tmp/issues/16

Reported by rsc (2023-08-16 14:10:15)

	demo issue

Comment by rsc (2023-08-16 14:10:31)

	comment 1

Comment by rsc (2023-08-16 14:10:45)

	comment 2

Comment by rsc (2023-08-16 14:11:48)

	Four score and seven years ago our fathers brought forth on
	this continent, a new nation, conceived in Liberty, and dedicated
	to the proposition that all men are created equal.
	  Now we are engaged in a great Civil War, testing whether that
	nation, or any nation so conceived and so dedicated, can long
	endure.
	  We are met on a great battle-field of that war.
	  We have come to dedicate a portion of that field, as a final
	resting place for those who here gave their lives that that
	nation might live.  It is altogether fitting and proper that
	we should do this.
	  But, in a larger sense, we can not dedicate — we can not
	consecrate — we can not hallow — this ground.
	  The brave men, living and dead, who struggled here, have
	consecrated it, far above our poor power to add or detract.
	The world will little note, nor long remember what we say here,
	but it can never forget what they did here.
	  It is for us the living, rather, to be dedicated here to the
	unfinished work which they who fought here have thus far so
	nobly advanced.  It is rather for us to be here dedicated to
	the great task remaining before us — that from these honored
	dead we take increased devotion to that cause for which they
	gave the last full measure of devotion —
	  that we here highly resolve that these dead shall not have
	died in vain — that this nation, under God, shall have a new
	birth of freedom — and that government of the people, by the
	people, for the people, shall not perish from this earth.
	
	Abraham Lincoln, November 19, 1863, Gettysburg, Pennsylvania

Comment by rsc (2023-08-16 14:11:58)

	comment 3

Comment by rsc (2023-08-16 14:12:35)

	comment 4
	
	this is a very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	long comment, long enough to scroll off the screen

Comment by rsc (2023-08-16 14:12:44)

	comment 4
	
	this is a very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	long comment, long enough to scroll off the screen

Comment by rsc (2023-08-16 14:12:57)

	comment 4
	
	this is a very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	long comment, long enough to scroll off the screen
	
	comment 4
	
	this is a very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	long comment, long enough to scroll off the screen

Comment by rsc (2023-08-16 14:13:18)

	comment

Comment by rsc (2023-08-16 14:13:32)

	comment 4
	
	this is a very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	very
	
	long comment, long enough to scroll off the screen
-- rsc/tmp#17 --
Title: prime issues
State: open
Assignee: 
Labels: 
Milestone: 
URL: https://github.com/rsc/tmp/issues/17

Reported by rsc (2024-06-13 09:12:34)

	These are the prime issues:
	
	- #2 
	- #3 
	- #5 
	- #7 
	- #9
-- rsc/tmp#18 --
Title: spellchecking
State: open
Assignee: 
Labels: 
Milestone: 
URL: https://github.com/rsc/tmp/issues/18

Reported by rsc (2024-06-15 07:20:39)

	Contexts are cancelled.

Comment by rsc (2024-06-17 13:06:17)

	No really, contexts are cancelled.
