-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
8ab4d5d
commit dbe5363
Showing
2 changed files
with
107 additions
and
20 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
<!-- Simulation test 1: species = 4, lineages/species = 2, samples = 1000 | ||
u=v=1.0 alpha=2, beta=0.2 lambda=10 | ||
--> | ||
|
||
<beast version='2.0' namespace='snap:beast.util:beast.core.util:beast.evolution'> | ||
|
||
<map name='snapprior'>snap.likelihood.SnAPPrior</map> | ||
<map name='snaptreelikelihood'>snap.likelihood.BetaApproximationLikelihood</map> | ||
|
||
<!-- n = 1000 --> | ||
<data spec='snap.Data' id='alignment' dataType='integerdata' statecount='3'> | ||
<sequence taxon='A' totalcount='3'> | ||
2,2,2,2,2,0,0,0,2,2,2,2,2,0,0,0,0,2,0,2,2,0,2,0,0,0,2,2,0,2,2,2,0,0,0,0,0,2,0,2,0,0,2,2,2,0,0,2,0,2,0,2,0,0,0,0,2,0,2,0,2,0,0,0,0,2,0,2,2,0,0,2,2,0,2,2,2,2,2,2,0,0,2,0,0,2,0,2,2,0,2,0,2,2,0,2,0,0,2,0,2,2,0,0,0,2,2,2,0,2,2,2,0,2,2,0,0,0,0,2,0,2,0,2,2,2,2,2,0,0,0,0,2,2,2,2,2,2,0,0,2,2,0,2,0,2,0,0,2,0,0,2,2,0,0,0,0,0,2,2,2,2,2,0,0,0,2,0,2,0,0,0,0,0,0,0,2,2,2,2,0,0,0,2,2,2,0,0,0,0,2,2,2,0,0,2,0,2,0,0,2,2,0,0,2,0,0,0,2,2,0,0,2,0,0,2,2,0,0,0,2,0,0,0,0,0,2,0,0,2,0,0,2,2,2,0,2,0,0,2,0,2,2,2,2,0,2,2,2,2,2,2,0,2,0,2,2,2,2,0,0,2,2,2,0,0,2,2,2,0,2,0,0,0,0,2,0,2,0,2,2,2,0,0,0,0,2,0,2,2,2,0,0,2,2,2,2,2,0,2,2,0,0,0,0,0,0,0,2,2,2,2,2,0,0,0,2,0,2,0,0,2,0,0,2,0,2,2,2,0,0,2,0,0,0,0,2,2,2,2,2,2,0,0,2,2,0,2,0,2,2,0,0,0,2,2,0,0,2,0,0,2,2,0,0,2,2,2,2,2,0,0,2,2,2,2,0,0,2,0,2,0,2,2,0,0,2,2,2,0,2,0,2,2,2,2,0,0,2,2,0,2,2,0,0,0,2,2,2,0,0,2,0,0,0,0,2,0,0,0,2,0,2,0,2,0,0,0,2,2,2,0,2,0,2,0,0,2,0,2,0,0,2,2,2,0,0,2,2,2,2,2,2,0,0,2,0,0,2,0,0,0,2,2,2,0,0,0,2,0,2,2,2,0,0,0,2,0,0,0,2,0,0,0,0,2,0,0,0,2,2,2,0,2,0,2,2,0,2,0,0,0,2,2,0,2,2,2,0,2,2,2,0,2,2,0,2,0,2,0,0,2,2,0,0,0,0,2,2,2,2,0,2,0,0,2,0,0,0,2,0,0,2,2,0,2,2,0,2,0,1,0,2,0,0,0,2,2,2,0,2,0,2,2,2,0,2,0,2,0,2,2,0,2,2,2,0,2,2,0,0,0,0,2,2,0,0,0,0,0,0,2,2,0,0,2,0,0,1,2,2,0,2,0,0,0,0,2,0,2,2,0,0,2,0,0,0,0,2,2,2,0,2,0,0,0,0,0,0,2,2,0,0,0,2,0,2,0,2,0,2,0,2,0,0,2,0,0,2,0,2,0,0,2,0,2,2,0,2,0,0,2,0,0,0,2,2,0,0,0,0,2,2,0,0,2,0,2,2,0,0,0,2,0,0,2,2,0,2,0,0,2,0,0,0,0,2,2,2,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,0,2,2,0,2,0,0,0,0,0,2,2,0,0,2,0,0,2,2,0,0,0,0,2,0,2,2,0,0,2,0,2,2,2,2,2,2,2,0,0,0,0,2,0,0,2,2,2,2,2,2,0,2,2,2,0,2,0,0,0,0,2,2,0,0,2,2,0,0,2,0,0,0,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,2,2,0,2,0,0,0,2,0,2,0,0,2,2,0,0,0,0,2,2,2,0,2,2,0,2,0,2,0,2,0,0,2,0,2,2,0,0,0,0,0,2,0,0,0,2,2,0,2,2,0,0,2,2,0,2,2,2,2,0,2,0,2,0,2,0,0,2,0,2,0,2,0,2,2,0,0,0,0,0,2,0,2,2,0,2,0,2,2,2,2,0,0,2,0,2,2,0,0,0,0,2,2,0,0,0,0,2,0,2,2,2,2,2,2,2,2,0,0,0,0,0,2,2,0,2,2,0,2,2,0,0,0,2,0,0,2,0,2,2,0,0,2,2,2,0,2,2,0,2,2,0,0,2,0,2,2,2,0,0,2,2,0,2,2,2,2,2,1,2,2,0,2,2,0,0,2,0,2,0,2,2,2,2,2,0,0,0,0,0,2,2,0,2,2, | ||
</sequence> | ||
<sequence taxon='B' totalcount='3'> | ||
2,2,2,2,2,0,0,0,2,2,2,2,2,0,0,0,0,2,2,2,2,0,2,0,0,0,2,2,0,2,2,2,0,0,0,0,0,2,0,2,0,0,2,2,2,0,0,2,0,2,0,2,0,0,0,0,2,0,2,0,2,0,0,0,2,2,0,2,2,0,0,2,2,0,2,2,2,2,2,2,0,0,2,0,0,2,0,2,2,0,2,0,2,0,0,2,0,0,2,0,2,2,0,0,0,2,2,2,0,2,2,2,0,2,2,0,0,0,0,2,0,2,0,2,2,2,2,2,2,0,0,0,2,2,2,2,2,2,0,0,2,2,0,2,0,2,0,0,2,0,0,2,2,0,0,0,0,0,2,2,2,2,2,0,0,0,2,0,2,0,0,0,0,0,0,0,2,2,2,2,0,0,0,2,2,2,0,0,0,0,2,2,2,0,0,2,0,2,0,0,2,2,0,0,2,0,0,0,2,2,0,0,2,0,0,2,2,0,0,0,0,0,0,0,0,0,2,0,0,2,0,0,2,2,2,0,2,0,0,2,0,2,2,2,2,0,2,2,2,2,2,2,0,2,0,2,2,2,2,0,0,2,2,2,0,0,2,2,2,0,2,0,0,0,0,2,0,2,0,2,2,2,0,0,0,0,2,0,2,2,0,0,0,2,2,2,2,0,0,2,2,0,0,0,0,0,0,0,2,2,2,2,0,0,0,0,2,0,2,0,0,2,0,0,2,2,2,2,2,0,0,2,0,0,0,0,2,2,2,2,2,2,0,0,2,2,0,2,0,2,2,0,0,2,2,2,0,0,2,0,0,2,2,0,0,2,2,2,2,2,0,0,2,2,2,2,0,0,2,0,2,2,2,2,0,0,2,2,2,0,2,0,2,2,0,2,0,0,2,2,0,2,2,0,0,0,2,2,2,0,0,2,0,0,0,0,2,0,0,0,2,0,2,0,0,0,0,0,2,2,2,0,2,0,2,0,0,2,0,2,0,0,2,2,2,0,0,2,2,2,2,2,2,2,0,2,0,0,2,2,0,0,2,2,2,0,0,0,2,0,2,2,2,0,0,0,2,0,0,0,2,0,0,0,0,2,2,0,0,2,2,2,2,2,2,2,2,0,2,0,0,0,2,2,0,2,2,2,0,2,2,0,0,2,2,0,2,0,2,0,0,2,2,0,0,0,0,2,2,2,2,0,2,0,0,2,0,0,0,2,0,0,2,0,0,2,2,0,0,0,0,0,2,0,0,0,2,2,2,0,2,0,2,2,2,0,2,0,2,0,2,2,0,2,2,2,0,2,0,0,0,0,2,2,2,0,0,0,0,0,0,2,2,0,0,2,0,0,0,2,2,0,2,0,0,0,0,2,0,2,2,0,0,2,0,0,0,0,2,2,2,0,2,0,0,0,0,0,0,2,2,0,0,0,2,0,2,2,2,0,2,0,2,0,0,2,0,0,0,0,2,0,0,2,0,2,2,0,0,0,0,2,0,0,0,2,2,0,0,0,0,2,2,0,0,2,0,2,2,0,0,0,2,0,0,2,2,0,2,0,0,2,0,0,0,0,2,2,2,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,0,2,2,0,2,0,0,0,0,0,2,2,0,0,2,0,0,2,2,0,0,0,0,2,0,2,0,0,0,0,0,0,2,2,2,2,2,2,0,0,0,0,0,0,0,2,2,2,2,2,2,0,2,2,2,2,2,0,0,0,0,2,2,0,2,2,2,0,0,2,0,0,0,0,0,2,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,2,2,0,2,0,0,0,2,0,2,0,0,2,2,1,0,0,0,2,2,2,0,2,2,0,0,0,2,0,2,0,0,2,0,0,2,0,0,0,0,0,2,0,0,0,2,2,0,2,2,0,0,0,0,0,2,2,2,2,0,2,0,2,2,2,0,0,2,0,2,0,2,0,2,2,0,0,0,0,0,2,0,2,2,0,2,0,2,2,2,2,0,0,2,0,2,2,0,0,0,0,2,2,0,0,0,0,2,0,2,2,2,2,2,2,2,2,0,0,0,0,0,2,2,0,2,2,0,2,2,0,0,0,2,0,0,2,0,2,2,0,0,2,2,2,0,2,2,0,2,2,0,0,2,0,2,2,2,0,0,2,2,0,2,2,2,2,2,0,0,2,0,2,2,0,1,2,0,2,0,2,2,0,2,2,0,1,0,0,0,2,2,0,2,2, | ||
</sequence> | ||
<sequence taxon='C' totalcount='3'> | ||
1,2,2,2,0,0,0,2,2,2,2,2,2,0,0,0,0,2,2,2,2,0,2,0,0,0,2,2,0,2,2,0,0,0,0,0,0,2,0,2,0,0,2,2,0,0,0,2,0,2,0,2,0,0,0,0,2,0,2,0,2,0,0,0,0,2,0,2,0,0,0,2,2,0,2,2,2,2,2,2,0,0,2,2,0,2,0,2,2,0,2,0,2,2,0,2,0,0,2,0,2,2,0,0,0,2,2,2,0,0,2,2,0,2,2,0,0,0,0,2,0,2,0,2,2,2,2,2,0,0,0,0,2,2,2,2,0,2,0,0,2,2,0,0,0,2,2,0,2,0,0,2,2,0,0,0,0,0,2,0,2,2,2,0,0,0,2,0,2,0,0,0,0,2,0,0,2,2,2,2,0,0,0,2,2,2,0,0,2,0,2,2,2,0,0,2,0,2,0,0,0,2,0,0,0,0,0,0,0,2,0,0,2,2,0,2,2,0,0,0,0,2,0,0,0,0,2,0,0,2,0,0,2,2,2,0,0,2,0,2,0,2,2,2,2,0,2,2,2,2,0,2,0,0,0,2,2,2,2,0,0,2,0,2,0,0,2,2,2,0,2,2,0,0,2,2,0,2,0,2,2,2,0,0,0,0,2,0,2,2,2,0,0,2,2,2,2,2,0,0,2,0,2,0,0,0,0,0,2,2,2,2,0,0,0,0,2,0,2,0,0,2,0,2,2,2,2,2,2,0,0,2,0,0,0,0,2,2,2,2,2,2,0,0,2,2,0,2,0,2,2,0,0,0,2,2,0,0,2,0,2,2,2,0,0,2,2,2,2,2,0,0,2,2,2,2,2,0,2,0,2,2,2,2,0,0,2,2,0,0,2,0,2,0,2,2,0,0,2,2,0,2,2,0,0,0,2,2,2,0,0,2,0,0,0,0,2,0,0,0,2,0,2,0,0,0,0,0,2,2,2,0,2,0,2,0,0,2,0,2,0,0,2,2,2,0,0,2,0,2,2,2,0,2,0,0,0,0,2,0,0,0,2,2,2,0,0,0,2,0,2,2,2,2,0,0,2,0,0,0,2,0,0,0,0,2,2,0,0,0,2,2,2,2,2,2,2,0,2,0,0,0,2,2,0,2,2,2,0,2,2,0,0,0,2,0,2,0,2,0,0,2,2,0,0,0,0,2,2,2,2,0,2,0,0,2,0,0,0,2,0,0,2,2,0,2,2,2,2,0,0,0,2,0,0,0,2,2,2,0,2,2,2,2,2,0,2,0,2,0,2,2,0,2,2,2,0,2,2,0,0,0,2,2,0,0,0,0,0,0,0,2,2,0,0,2,0,0,0,2,0,0,2,0,0,0,0,2,0,2,2,0,0,2,0,0,0,0,2,2,2,2,2,0,0,0,0,0,0,2,2,0,0,0,2,0,2,2,2,0,2,0,2,0,0,2,0,0,2,0,2,0,0,2,0,2,2,0,2,0,0,2,0,0,0,2,2,0,0,0,0,2,2,0,2,2,0,2,2,0,0,0,2,0,0,2,2,0,2,0,0,2,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,2,2,2,0,2,2,0,2,2,2,2,0,0,0,0,0,2,2,0,0,2,0,0,2,2,0,0,0,0,2,2,2,0,0,0,0,0,0,2,2,2,2,2,2,0,0,0,0,0,0,0,2,2,2,2,2,2,0,2,2,2,2,2,0,0,2,2,0,2,0,0,2,2,0,0,2,0,0,0,0,0,2,2,0,0,0,0,0,2,0,2,0,0,0,0,0,0,2,0,0,2,0,2,0,2,0,2,0,0,2,2,0,0,0,2,2,2,2,0,2,2,0,0,0,0,0,2,0,0,2,0,0,2,0,0,0,2,0,2,0,0,0,2,2,0,2,2,0,0,2,0,0,2,2,2,2,0,2,0,2,0,2,0,0,2,0,2,0,2,0,2,2,0,0,0,0,0,2,0,2,2,0,2,0,2,2,2,2,0,0,0,0,2,2,0,0,0,2,2,2,0,0,0,0,2,0,2,2,2,2,2,2,2,0,0,0,2,0,0,2,2,0,2,2,0,2,2,0,0,0,2,0,0,2,0,2,2,0,0,2,2,0,0,0,2,0,2,2,2,0,2,0,0,2,2,0,0,2,2,0,2,2,2,0,2,0,0,2,0,2,2,0,0,2,0,2,0,2,2,0,2,2,0,0,0,0,0,2,2,0,2,2, | ||
</sequence> | ||
<sequence taxon='D' totalcount='3'> | ||
2,2,2,2,0,0,0,0,2,2,2,2,2,0,0,0,0,2,2,2,2,0,2,0,0,0,2,2,0,2,2,0,0,0,0,0,0,2,0,2,0,0,2,2,0,0,0,2,0,2,0,2,0,0,0,0,2,0,2,0,2,0,0,0,0,2,0,2,0,0,0,2,2,0,2,2,2,2,2,2,0,0,2,2,0,2,0,2,2,0,2,0,2,2,0,2,0,0,2,0,2,2,0,0,0,2,2,2,0,0,2,2,0,2,2,0,0,0,1,2,0,2,0,2,2,2,2,2,0,0,0,0,2,2,2,2,0,2,0,0,2,2,0,2,0,2,0,0,2,0,0,2,2,0,0,0,0,0,2,0,2,2,2,0,0,0,2,0,2,0,0,0,0,2,0,0,2,2,2,2,1,0,0,2,2,2,0,0,2,0,2,2,2,0,0,2,0,2,0,0,1,2,0,0,0,0,0,0,0,2,0,0,2,2,0,2,2,0,0,0,0,2,0,0,0,0,2,0,0,2,0,0,2,2,2,0,0,2,0,2,0,2,2,2,2,0,2,2,2,2,0,2,0,0,0,2,2,2,2,0,0,2,0,2,0,0,2,2,2,0,2,2,0,0,2,2,0,2,0,2,2,2,0,0,0,0,2,0,2,2,2,0,0,2,2,2,2,2,0,0,2,0,2,0,0,0,0,0,2,2,2,2,0,0,0,0,2,0,2,0,0,2,0,2,2,2,2,2,2,0,0,2,0,0,0,0,2,2,2,2,2,2,0,0,2,2,0,2,0,2,2,0,0,0,2,2,0,0,2,0,2,2,2,0,0,2,2,2,2,2,0,0,2,2,2,2,0,0,2,0,2,2,2,2,0,0,2,2,0,0,2,0,2,0,2,2,0,0,2,2,0,2,2,0,0,0,2,2,2,0,0,2,0,0,0,0,2,0,0,0,2,0,2,0,0,0,0,0,2,2,2,0,2,0,2,0,0,2,2,2,0,0,2,2,2,0,0,2,0,2,2,2,0,2,0,0,0,0,2,0,0,0,2,2,2,0,0,0,2,0,2,2,2,2,0,0,2,0,0,0,2,0,0,0,0,2,2,0,0,2,2,2,2,2,2,2,2,0,2,0,0,0,2,2,0,2,0,2,0,2,2,0,0,0,2,0,2,0,2,0,0,2,2,0,0,0,0,2,2,2,2,0,2,0,1,2,0,0,0,2,0,0,2,2,0,2,2,2,2,0,0,0,2,0,0,0,2,2,2,0,2,2,2,2,2,0,2,0,2,0,2,2,0,2,2,2,0,2,2,0,0,0,2,2,0,0,0,0,0,0,0,2,2,0,0,2,0,0,0,2,0,0,2,0,0,0,0,2,0,2,2,0,0,2,0,0,0,0,2,1,2,2,2,0,0,0,0,0,0,2,2,0,0,0,2,0,2,2,2,0,2,0,2,0,0,2,0,0,2,0,2,0,0,2,0,2,2,0,2,0,0,2,0,0,0,2,2,0,0,0,0,2,2,0,2,2,0,2,2,0,0,0,2,0,0,2,2,0,2,0,0,2,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,0,2,2,2,2,0,0,0,0,0,2,2,0,0,2,0,0,2,2,0,0,0,0,2,2,2,0,0,0,0,0,0,2,2,2,2,2,2,0,0,0,0,0,0,0,2,2,2,2,2,2,0,2,2,2,2,2,0,0,2,2,0,2,0,0,2,2,0,0,2,0,0,0,0,0,2,2,0,0,1,0,0,2,0,2,0,0,0,0,0,0,2,0,0,2,0,2,0,2,0,2,0,0,2,2,0,0,0,2,2,2,2,0,2,2,0,0,0,2,0,2,0,0,1,0,0,2,0,0,0,2,0,2,0,2,1,2,2,0,2,2,0,0,2,0,0,2,2,2,2,0,2,0,2,0,2,0,0,2,0,2,0,2,0,2,2,0,0,0,0,0,2,0,2,2,0,2,0,2,2,2,2,0,0,0,0,2,2,0,0,0,2,2,2,0,0,0,0,2,0,2,2,2,2,2,2,2,0,0,0,2,0,0,2,2,0,2,2,0,2,2,1,0,0,2,0,0,2,0,2,2,0,0,2,2,0,0,2,2,0,2,2,2,0,1,0,0,2,2,0,0,2,2,0,2,2,2,0,2,0,0,2,0,2,2,0,0,2,0,2,0,2,2,0,2,2,0,0,0,0,0,2,2,0,2,2, | ||
</sequence> | ||
|
||
|
||
</data> | ||
|
||
<run id="mcmc" spec='beast.core.MCMC' chainLength="1000000" preBurnin="0"> | ||
<state storeEvery='1000'> | ||
<parameter name='stateNode' id='coalescenceRate' dimension='7' value='10'/> | ||
|
||
<!-- the following values may or may not be appropriate. Read the manual for further directions --> | ||
<parameter name='stateNode' id='v' value='1.0' lower='0.0'/> | ||
<parameter name='stateNode' id='u' value='1.0' lower='0.0'/> | ||
<parameter name='stateNode' id='alpha' value='2' lower='0.0'/> | ||
<parameter name='stateNode' id='beta' value='200' lower='0.0'/> | ||
<parameter name='stateNode' id='lambda' value='10' lower='0.0'/> | ||
<stateNode clusterType="upgma" estimate="true" id="tree" nodetype="snap.NodeData" spec="beast.util.ClusterTree" taxa='@alignment'/> | ||
</state> | ||
|
||
<distribution id="posterior" spec='CompoundDistribution'> | ||
<snapprior name='distribution' id='prior' alpha='@alpha' beta='@beta' lambda='@lambda' tree='@tree' coalescenceRate='@coalescenceRate'/> | ||
<snaptreelikelihood name='distribution' id='treeLikelihood' data='@alignment' tree='@tree' coalescenceRate='@coalescenceRate'/> | ||
</distribution> | ||
|
||
<!-- | ||
<stateDistribution idref='prior'/> | ||
--> | ||
|
||
<operator spec='operators.NodeSwapper' weight='0.5' tree='@tree'/> | ||
<operator spec='operators.NodeBudger' weight='5' size='0.5' tree='@tree'/> | ||
<operator spec='operators.ScaleOperator' scaleFactor='0.25' weight='1' tree='@tree'/> | ||
<operator spec='operators.GammaMover' scale='0.5' weight='0.5' coalescenceRate='@coalescenceRate'/> | ||
<operator spec='operators.RateMixer' scaleFactors='0.25' weight='1' tree='@tree' coalescenceRate='@coalescenceRate'/> | ||
|
||
<!-- estimate u and v --> | ||
<operator spec='operators.MutationMover' window='0.1' weight='0.25' u='@u' v='@v'/> | ||
|
||
|
||
<logger logEvery="1000"> | ||
<log idref="u"/> | ||
<log idref="v"/> | ||
<log idref="prior"/> | ||
<log idref="treeLikelihood"/> | ||
<log idref="posterior"/> | ||
<log spec='snap.ThetaLogger' coalescenceRate='@coalescenceRate'/> | ||
<log spec='beast.evolution.tree.TreeHeightLogger' tree='@tree'/> | ||
</logger> | ||
<logger logEvery="1000" fileName="testBetaApproximation.log"> | ||
<model idref='posterior'/> | ||
<log idref="u"/> | ||
<log idref="v"/> | ||
<log idref="prior"/> | ||
<log idref="treeLikelihood"/> | ||
<log idref="posterior"/> | ||
<log idref='coalescenceRate'/> | ||
<log spec='snap.ThetaLogger' coalescenceRate='@coalescenceRate'/> | ||
<log spec='beast.evolution.tree.TreeHeightLogger' tree='@tree'/> | ||
<log spec='TreeLengthLogger' tree='@tree'/> | ||
</logger> | ||
<logger logEvery="1000" fileName="testBetaApproximation.trees" mode='tree'> | ||
<log spec='beast.evolution.tree.TreeWithMetaDataLogger' tree="@tree" metadata='@coalescenceRate'/> | ||
</logger> | ||
|
||
<!-- | ||
<logger logEvery="1000" fileName="test2.$(seed).trees" mode='tree'> | ||
<log spec='snap.CoalescentUnitTreeLogger' tree="@tree" coalescenceRate='@coalescenceRate'/> | ||
</logger> | ||
--> | ||
</run> | ||
|
||
</beast> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters