summaryrefslogtreecommitdiff
path: root/pjmedia/build/Jbtest.dat
diff options
context:
space:
mode:
authorDavid M. Lee <dlee@digium.com>2013-01-07 14:24:28 -0600
committerDavid M. Lee <dlee@digium.com>2013-01-07 14:24:28 -0600
commitf3ab456a17af1c89a6e3be4d20c5944853df1cb0 (patch)
treed00e1a332cd038a6d906a1ea0ac91e1a4458e617 /pjmedia/build/Jbtest.dat
Import pjproject-2.0.1
Diffstat (limited to 'pjmedia/build/Jbtest.dat')
-rw-r--r--pjmedia/build/Jbtest.dat578
1 files changed, 578 insertions, 0 deletions
diff --git a/pjmedia/build/Jbtest.dat b/pjmedia/build/Jbtest.dat
new file mode 100644
index 0000000..4f5a67f
--- /dev/null
+++ b/pjmedia/build/Jbtest.dat
@@ -0,0 +1,578 @@
+#
+# ======================================================================
+# Jitter Buffer test data, containing one or more test sessions
+# ======================================================================
+#
+# A test session format:
+#
+# 1. Session title, started with '=', example:
+# = Bursty environment
+#
+# 2. Session setting, started with '%', followed by params:
+# - mode, possible values: 'adaptive' or 'fixed'
+# - initial prefetch, in frames
+# - minimum prefetch (for adaptive mode only), in frames
+# - maximum prefetch (for adaptive mode only), in frames
+# Example:
+# %adaptive 0 0 40
+# %fixed 10
+#
+# 3. Success conditions, started with '!', followed by condition name
+# and its maximum tolerable value, in frames unit. Recognized condition
+# names are: burst, discard, lost, empty, delay, delay_min. These
+# conditions will be verified with jitter buffer statistics after all
+# session test data are executed.
+# Example:
+# !delay 10 <- average delay of jbuf is 10 frames
+#
+# 4. Session test data, containing sequence of jitter buffer events,
+# an event is represented by a character as follow:
+# - P: PUT a frame into jitter buffer
+# - G: GET a frame from jitter buffer
+# - L: generate a Lost frame, i.e: sequence jump by 1
+# - R: sequence Restart
+# - J: sequence Jump by 20
+# - D: generate a Duplicated frame
+# - O: generate an Old/late (and perhaps also duplicated) frame
+# Example:
+# PGPGPGPGPG <- ideal condition, PUT and GET one after another
+#
+# 5. End of session test data, marked by '.'
+#
+# ======================================================================
+#
+
+= Ideal condition
+%adaptive 0 0 10
+!burst 1
+!discard 0
+!lost 0
+!empty 0
+!delay 1
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG
+.
+
+= DTX
+%adaptive 0 0 10
+!burst 1
+!discard 0
+!lost 0
+!empty 20
+!delay 1
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG
+# Start silence
+GGGGGGGGGGGGGGGGGGGG
+# End silence
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG
+.
+
+= Regular burst (three gets three puts)
+%adaptive 0 0 10
+!burst 3
+!discard 0
+!lost 0
+!empty 0
+!delay 3
+PPPGGGPPPGGGPPPGGG PPPGGGPPPGGGPPPGGG PPPGGGPPPGGGPPPGGG PPPGGGPPPGGGPPPGGG
+PPPGGGPPPGGGPPPGGG PPPGGGPPPGGGPPPGGG PPPGGGPPPGGGPPPGGG PPPGGGPPPGGGPPPGGG
+.
+
+= Random burst (no drift)
+%adaptive 0 0 10
+!burst 4
+!discard 1 <- there may be delay adaptation caused by multiple empty GETs followed by multiple PUTs, later when burst level reaches 'stable' condition, JB may shrink some excess frames
+!lost 0
+!empty 4
+!delay 4
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+.
+
+= Random burst (with drift, PUT > GET)
+%adaptive 0 0 10
+!burst 4
+!discard 68 <- number of PUT - GET, JB does shrinking by discarding frames
+!lost 68 <- ticket #1188, normal frame after discarded frame is flagged 'lost' to align signal
+!empty 4
+!delay 8 <- should be less than or equal to twice of burst
+P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG
+P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG
+P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG
+P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG
+P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG
+P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG
+P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG
+P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG
+P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG
+P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG
+P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG
+P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG
+P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG
+P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG
+P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG
+P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG
+P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG
+P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG
+P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG
+P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG
+P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG
+P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG
+P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG
+P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG
+P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG
+P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG
+P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG
+P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG
+P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG
+P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG
+P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG
+P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG
+P PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG P PGPGPPGGPPPPGGPGGGPG
+P PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG P PGGGGPPPGPPGPPPGGPGG
+.
+
+= Random burst (with drift, PUT < GET)
+%adaptive 0 0 10
+!burst 4
+!discard 0
+!lost 0
+!empty 70 <- GET - PUT = 66, added 4 for tolerating empty caused by burst
+!delay 4 <- should be less than or equal to burst
+G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG
+G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG
+G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG
+G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG
+G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG
+G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG
+G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG
+G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG
+G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG
+G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG
+G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG
+G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG
+G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG
+G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG
+G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG
+G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG
+G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG
+G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG
+G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG
+G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG
+G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG
+G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG
+G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG
+G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG
+G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG
+G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG
+G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG
+G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG
+G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG
+G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG
+G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG
+G PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG G PGGGGPPPGPPGPPPGGPGG
+G PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG G PGPGPPGGPPPPGGPGGGPG
+.
+
+= Packet lost
+%adaptive 0 0 10
+!burst 1
+!discard 0
+!lost 7
+!empty 3
+!delay 3
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG
+# Some losts
+LGPGPGLGPGPGPGLGPGPG
+# Normal
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG
+# More losts
+PLPGGGPPPGGGPLPGGGPG PLPGGGPPPGGGPLPGGGPG
+# Normal
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG
+.
+
+= Sequence restart
+%adaptive 0 0 10
+!burst 1
+!discard 0
+!lost 0
+!empty 0
+!delay 1
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG
+# seq restarted after 120 PUTs (default MAX_MISORDER == 100)
+R
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG
+.
+
+= Duplicated frames
+= e.g.: some Forward Error Correction (FEC) methods.
+%adaptive 0 0 10
+!burst 1
+!discard 40
+!lost 0
+!empty 0
+!delay 1
+PDGPDGPDGPDGPDG PDGPDGPDGPDGPDG PDGPDGPDGPDGPDG PDGPDGPDGPDGPDG
+PDGPDGPDGPDGPDG PDGPDGPDGPDGPDG PDGPDGPDGPDGPDG PDGPDGPDGPDGPDG
+.
+
+= Late frames
+%adaptive 0 0 10
+!burst 1
+!discard 8 <- late frames are discarded + delay adaptation
+!lost 4
+!empty 4
+!delay 4
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG
+# Suddenly there are some lost frames
+LGLGPGLGLGPG
+# Those lost frames are actually late (+misordered), here they come
+OOOO
+# Then back to normal
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG
+.
+
+= PUT burst at the beginning
+%adaptive 0 0 10
+!burst 1
+!discard 50 <- frames discarded for delay adaptation
+!lost 50 <- ticket #1188, normal frame after discarded frame is flagged 'lost' to align signal
+!empty 0
+!delay_min 2 <- minimum delay, JB is able to adapt the delay
+PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+.
+
+= Fixed mode prefetch 5, with two empty events
+%fixed 5
+!burst 1
+!discard 4 <- the burst level is about 1, but prefetching will cause delay by 5 frames prefetching, delay adjustment may take place later on
+!lost 4 <- progressive discard drops frames as if they were lost
+!empty 10
+!delay 5
+G
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+GGGGG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+.
+
+= Fixed mode prefetch 5, with random burst
+%fixed 5
+!burst 3
+!discard 4 <- (see above test scenario)
+!lost 4 <- (see above test scenario)
+!empty 5
+!delay 5
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+PGPGPPGGPPPPGGPGGGPG PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPPPGGPGGGPG
+PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG
+.
+
+= Fixed mode prefetch 10, PUT burst at the beginning
+%fixed 10
+!burst 1
+!discard 50 <- frames discarded for delay adaptation
+!lost 50 <- ticket #1188, normal frame after discarded frame is flagged 'lost' to align signal
+!empty 0
+!delay_min 20 <- minimum delay, twice of minimal prefetch
+PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG
+.
+
+= Large PUT burst at beginning, then normal with burst level 10 and periodic burst spikes
+%adaptive 0 0 40
+!burst 12
+!discard 300 <- not so relevant for long period session with many delay adjustments needed (i.e: for first burst and periodic spikes)
+!lost 300 <- ticket #1188, normal frame after discarded frame is flagged 'lost' to align signal
+!empty 60 <- delay adjustment effect, as there is actually no drift
+!delay 20 <- twice of burst level average
+PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP
+PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP
+PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP
+PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP
+GGGGGGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGG GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP
+GGGGGGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGG GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP
+GGGGGGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGG GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP
+GGGGGGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGG GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP
+GGGGGGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGG GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG
+.