@openreplay/tracker 11.0.4 → 11.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/cjs/app/canvas.d.ts +3 -0
- package/cjs/app/canvas.js +27 -11
- package/cjs/app/index.d.ts +2 -0
- package/cjs/app/index.js +15 -6
- package/cjs/app/nodes.d.ts +1 -0
- package/cjs/app/nodes.js +3 -0
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js +7 -1
- package/coverage/clover.xml +890 -527
- package/coverage/coverage-final.json +10 -9
- package/coverage/lcov-report/index.html +30 -30
- package/coverage/lcov-report/main/app/canvas.ts.html +21 -6
- package/coverage/lcov-report/main/app/guards.ts.html +1 -1
- package/coverage/lcov-report/main/app/index.html +13 -13
- package/coverage/lcov-report/main/app/index.ts.html +1236 -114
- package/coverage/lcov-report/main/app/logger.ts.html +25 -91
- package/coverage/lcov-report/main/app/messages.gen.ts.html +1 -1
- package/coverage/lcov-report/main/app/nodes.ts.html +1 -1
- package/coverage/lcov-report/main/app/observer/iframe_observer.ts.html +1 -1
- package/coverage/lcov-report/main/app/observer/iframe_offsets.ts.html +1 -1
- package/coverage/lcov-report/main/app/observer/index.html +1 -1
- package/coverage/lcov-report/main/app/observer/shadow_root_observer.ts.html +1 -1
- package/coverage/lcov-report/main/app/observer/top_observer.ts.html +1 -1
- package/coverage/lcov-report/main/app/sanitizer.ts.html +1 -1
- package/coverage/lcov-report/main/app/session.ts.html +1 -1
- package/coverage/lcov-report/main/app/ticker.ts.html +1 -1
- package/coverage/lcov-report/main/index.html +9 -9
- package/coverage/lcov-report/main/index.ts.html +376 -100
- package/coverage/lcov-report/main/modules/Network/beaconProxy.ts.html +1 -1
- package/coverage/lcov-report/main/modules/Network/fetchProxy.ts.html +1 -1
- package/coverage/lcov-report/main/modules/Network/index.html +1 -1
- package/coverage/lcov-report/main/modules/Network/index.ts.html +1 -1
- package/coverage/lcov-report/main/modules/Network/networkMessage.ts.html +1 -1
- package/coverage/lcov-report/main/modules/Network/utils.ts.html +1 -1
- package/coverage/lcov-report/main/modules/Network/xhrProxy.ts.html +1 -1
- package/coverage/lcov-report/main/modules/attributeSender.ts.html +1 -1
- package/coverage/lcov-report/main/modules/axiosSpy.ts.html +1 -1
- package/coverage/lcov-report/main/modules/conditionsManager.ts.html +112 -67
- package/coverage/lcov-report/main/modules/connection.ts.html +1 -1
- package/coverage/lcov-report/main/modules/console.ts.html +1 -1
- package/coverage/lcov-report/main/modules/constructedStyleSheets.ts.html +1 -1
- package/coverage/lcov-report/main/modules/cssrules.ts.html +1 -1
- package/coverage/lcov-report/main/modules/exception.ts.html +1 -1
- package/coverage/lcov-report/main/modules/featureFlags.ts.html +10 -7
- package/coverage/lcov-report/main/modules/focus.ts.html +1 -1
- package/coverage/lcov-report/main/modules/fonts.ts.html +1 -1
- package/coverage/lcov-report/main/modules/img.ts.html +1 -1
- package/coverage/lcov-report/main/modules/index.html +37 -22
- package/coverage/lcov-report/main/modules/input.ts.html +1 -1
- package/coverage/lcov-report/main/modules/mouse.ts.html +1 -1
- package/coverage/lcov-report/main/modules/network.ts.html +1 -1
- package/coverage/lcov-report/main/modules/performance.ts.html +1 -1
- package/coverage/lcov-report/main/modules/scroll.ts.html +1 -1
- package/coverage/lcov-report/main/modules/selection.ts.html +1 -1
- package/coverage/lcov-report/main/modules/tabs.ts.html +1 -1
- package/coverage/lcov-report/main/modules/tagWatcher.ts.html +72 -15
- package/coverage/lcov-report/main/modules/timing.ts.html +1 -1
- package/coverage/lcov-report/main/modules/userTesting/SignalManager.ts.html +1 -1
- package/coverage/lcov-report/main/modules/userTesting/dnd.ts.html +1 -1
- package/coverage/lcov-report/main/modules/userTesting/index.html +1 -1
- package/coverage/lcov-report/main/modules/userTesting/index.ts.html +1 -1
- package/coverage/lcov-report/main/modules/userTesting/recorder.ts.html +1 -1
- package/coverage/lcov-report/main/modules/userTesting/styles.ts.html +1 -1
- package/coverage/lcov-report/main/modules/userTesting/utils.ts.html +1 -1
- package/coverage/lcov-report/main/modules/viewport.ts.html +1 -1
- package/coverage/lcov-report/main/utils.ts.html +1 -1
- package/coverage/lcov-report/webworker/BatchWriter.ts.html +23 -5
- package/coverage/lcov-report/webworker/MessageEncoder.gen.ts.html +1 -1
- package/coverage/lcov-report/webworker/PrimitiveEncoder.ts.html +1 -1
- package/coverage/lcov-report/webworker/QueueSender.ts.html +18 -6
- package/coverage/lcov-report/webworker/index.html +13 -13
- package/coverage/lcov-report/webworker/index.ts.html +17 -8
- package/coverage/lcov.info +1629 -942
- package/lib/app/canvas.d.ts +3 -0
- package/lib/app/canvas.js +27 -11
- package/lib/app/index.d.ts +2 -0
- package/lib/app/index.js +15 -6
- package/lib/app/nodes.d.ts +1 -0
- package/lib/app/nodes.js +3 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +7 -1
- package/package.json +1 -1
|
@@ -25,28 +25,28 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">0% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>0/
|
|
28
|
+
<span class='fraction'>0/486</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">0% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>0/
|
|
35
|
+
<span class='fraction'>0/257</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">0% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>0/
|
|
42
|
+
<span class='fraction'>0/86</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">0% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>0/
|
|
49
|
+
<span class='fraction'>0/472</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -930,7 +930,383 @@
|
|
|
930
930
|
<a name='L865'></a><a href='#L865'>865</a>
|
|
931
931
|
<a name='L866'></a><a href='#L866'>866</a>
|
|
932
932
|
<a name='L867'></a><a href='#L867'>867</a>
|
|
933
|
-
<a name='L868'></a><a href='#L868'>868</a
|
|
933
|
+
<a name='L868'></a><a href='#L868'>868</a>
|
|
934
|
+
<a name='L869'></a><a href='#L869'>869</a>
|
|
935
|
+
<a name='L870'></a><a href='#L870'>870</a>
|
|
936
|
+
<a name='L871'></a><a href='#L871'>871</a>
|
|
937
|
+
<a name='L872'></a><a href='#L872'>872</a>
|
|
938
|
+
<a name='L873'></a><a href='#L873'>873</a>
|
|
939
|
+
<a name='L874'></a><a href='#L874'>874</a>
|
|
940
|
+
<a name='L875'></a><a href='#L875'>875</a>
|
|
941
|
+
<a name='L876'></a><a href='#L876'>876</a>
|
|
942
|
+
<a name='L877'></a><a href='#L877'>877</a>
|
|
943
|
+
<a name='L878'></a><a href='#L878'>878</a>
|
|
944
|
+
<a name='L879'></a><a href='#L879'>879</a>
|
|
945
|
+
<a name='L880'></a><a href='#L880'>880</a>
|
|
946
|
+
<a name='L881'></a><a href='#L881'>881</a>
|
|
947
|
+
<a name='L882'></a><a href='#L882'>882</a>
|
|
948
|
+
<a name='L883'></a><a href='#L883'>883</a>
|
|
949
|
+
<a name='L884'></a><a href='#L884'>884</a>
|
|
950
|
+
<a name='L885'></a><a href='#L885'>885</a>
|
|
951
|
+
<a name='L886'></a><a href='#L886'>886</a>
|
|
952
|
+
<a name='L887'></a><a href='#L887'>887</a>
|
|
953
|
+
<a name='L888'></a><a href='#L888'>888</a>
|
|
954
|
+
<a name='L889'></a><a href='#L889'>889</a>
|
|
955
|
+
<a name='L890'></a><a href='#L890'>890</a>
|
|
956
|
+
<a name='L891'></a><a href='#L891'>891</a>
|
|
957
|
+
<a name='L892'></a><a href='#L892'>892</a>
|
|
958
|
+
<a name='L893'></a><a href='#L893'>893</a>
|
|
959
|
+
<a name='L894'></a><a href='#L894'>894</a>
|
|
960
|
+
<a name='L895'></a><a href='#L895'>895</a>
|
|
961
|
+
<a name='L896'></a><a href='#L896'>896</a>
|
|
962
|
+
<a name='L897'></a><a href='#L897'>897</a>
|
|
963
|
+
<a name='L898'></a><a href='#L898'>898</a>
|
|
964
|
+
<a name='L899'></a><a href='#L899'>899</a>
|
|
965
|
+
<a name='L900'></a><a href='#L900'>900</a>
|
|
966
|
+
<a name='L901'></a><a href='#L901'>901</a>
|
|
967
|
+
<a name='L902'></a><a href='#L902'>902</a>
|
|
968
|
+
<a name='L903'></a><a href='#L903'>903</a>
|
|
969
|
+
<a name='L904'></a><a href='#L904'>904</a>
|
|
970
|
+
<a name='L905'></a><a href='#L905'>905</a>
|
|
971
|
+
<a name='L906'></a><a href='#L906'>906</a>
|
|
972
|
+
<a name='L907'></a><a href='#L907'>907</a>
|
|
973
|
+
<a name='L908'></a><a href='#L908'>908</a>
|
|
974
|
+
<a name='L909'></a><a href='#L909'>909</a>
|
|
975
|
+
<a name='L910'></a><a href='#L910'>910</a>
|
|
976
|
+
<a name='L911'></a><a href='#L911'>911</a>
|
|
977
|
+
<a name='L912'></a><a href='#L912'>912</a>
|
|
978
|
+
<a name='L913'></a><a href='#L913'>913</a>
|
|
979
|
+
<a name='L914'></a><a href='#L914'>914</a>
|
|
980
|
+
<a name='L915'></a><a href='#L915'>915</a>
|
|
981
|
+
<a name='L916'></a><a href='#L916'>916</a>
|
|
982
|
+
<a name='L917'></a><a href='#L917'>917</a>
|
|
983
|
+
<a name='L918'></a><a href='#L918'>918</a>
|
|
984
|
+
<a name='L919'></a><a href='#L919'>919</a>
|
|
985
|
+
<a name='L920'></a><a href='#L920'>920</a>
|
|
986
|
+
<a name='L921'></a><a href='#L921'>921</a>
|
|
987
|
+
<a name='L922'></a><a href='#L922'>922</a>
|
|
988
|
+
<a name='L923'></a><a href='#L923'>923</a>
|
|
989
|
+
<a name='L924'></a><a href='#L924'>924</a>
|
|
990
|
+
<a name='L925'></a><a href='#L925'>925</a>
|
|
991
|
+
<a name='L926'></a><a href='#L926'>926</a>
|
|
992
|
+
<a name='L927'></a><a href='#L927'>927</a>
|
|
993
|
+
<a name='L928'></a><a href='#L928'>928</a>
|
|
994
|
+
<a name='L929'></a><a href='#L929'>929</a>
|
|
995
|
+
<a name='L930'></a><a href='#L930'>930</a>
|
|
996
|
+
<a name='L931'></a><a href='#L931'>931</a>
|
|
997
|
+
<a name='L932'></a><a href='#L932'>932</a>
|
|
998
|
+
<a name='L933'></a><a href='#L933'>933</a>
|
|
999
|
+
<a name='L934'></a><a href='#L934'>934</a>
|
|
1000
|
+
<a name='L935'></a><a href='#L935'>935</a>
|
|
1001
|
+
<a name='L936'></a><a href='#L936'>936</a>
|
|
1002
|
+
<a name='L937'></a><a href='#L937'>937</a>
|
|
1003
|
+
<a name='L938'></a><a href='#L938'>938</a>
|
|
1004
|
+
<a name='L939'></a><a href='#L939'>939</a>
|
|
1005
|
+
<a name='L940'></a><a href='#L940'>940</a>
|
|
1006
|
+
<a name='L941'></a><a href='#L941'>941</a>
|
|
1007
|
+
<a name='L942'></a><a href='#L942'>942</a>
|
|
1008
|
+
<a name='L943'></a><a href='#L943'>943</a>
|
|
1009
|
+
<a name='L944'></a><a href='#L944'>944</a>
|
|
1010
|
+
<a name='L945'></a><a href='#L945'>945</a>
|
|
1011
|
+
<a name='L946'></a><a href='#L946'>946</a>
|
|
1012
|
+
<a name='L947'></a><a href='#L947'>947</a>
|
|
1013
|
+
<a name='L948'></a><a href='#L948'>948</a>
|
|
1014
|
+
<a name='L949'></a><a href='#L949'>949</a>
|
|
1015
|
+
<a name='L950'></a><a href='#L950'>950</a>
|
|
1016
|
+
<a name='L951'></a><a href='#L951'>951</a>
|
|
1017
|
+
<a name='L952'></a><a href='#L952'>952</a>
|
|
1018
|
+
<a name='L953'></a><a href='#L953'>953</a>
|
|
1019
|
+
<a name='L954'></a><a href='#L954'>954</a>
|
|
1020
|
+
<a name='L955'></a><a href='#L955'>955</a>
|
|
1021
|
+
<a name='L956'></a><a href='#L956'>956</a>
|
|
1022
|
+
<a name='L957'></a><a href='#L957'>957</a>
|
|
1023
|
+
<a name='L958'></a><a href='#L958'>958</a>
|
|
1024
|
+
<a name='L959'></a><a href='#L959'>959</a>
|
|
1025
|
+
<a name='L960'></a><a href='#L960'>960</a>
|
|
1026
|
+
<a name='L961'></a><a href='#L961'>961</a>
|
|
1027
|
+
<a name='L962'></a><a href='#L962'>962</a>
|
|
1028
|
+
<a name='L963'></a><a href='#L963'>963</a>
|
|
1029
|
+
<a name='L964'></a><a href='#L964'>964</a>
|
|
1030
|
+
<a name='L965'></a><a href='#L965'>965</a>
|
|
1031
|
+
<a name='L966'></a><a href='#L966'>966</a>
|
|
1032
|
+
<a name='L967'></a><a href='#L967'>967</a>
|
|
1033
|
+
<a name='L968'></a><a href='#L968'>968</a>
|
|
1034
|
+
<a name='L969'></a><a href='#L969'>969</a>
|
|
1035
|
+
<a name='L970'></a><a href='#L970'>970</a>
|
|
1036
|
+
<a name='L971'></a><a href='#L971'>971</a>
|
|
1037
|
+
<a name='L972'></a><a href='#L972'>972</a>
|
|
1038
|
+
<a name='L973'></a><a href='#L973'>973</a>
|
|
1039
|
+
<a name='L974'></a><a href='#L974'>974</a>
|
|
1040
|
+
<a name='L975'></a><a href='#L975'>975</a>
|
|
1041
|
+
<a name='L976'></a><a href='#L976'>976</a>
|
|
1042
|
+
<a name='L977'></a><a href='#L977'>977</a>
|
|
1043
|
+
<a name='L978'></a><a href='#L978'>978</a>
|
|
1044
|
+
<a name='L979'></a><a href='#L979'>979</a>
|
|
1045
|
+
<a name='L980'></a><a href='#L980'>980</a>
|
|
1046
|
+
<a name='L981'></a><a href='#L981'>981</a>
|
|
1047
|
+
<a name='L982'></a><a href='#L982'>982</a>
|
|
1048
|
+
<a name='L983'></a><a href='#L983'>983</a>
|
|
1049
|
+
<a name='L984'></a><a href='#L984'>984</a>
|
|
1050
|
+
<a name='L985'></a><a href='#L985'>985</a>
|
|
1051
|
+
<a name='L986'></a><a href='#L986'>986</a>
|
|
1052
|
+
<a name='L987'></a><a href='#L987'>987</a>
|
|
1053
|
+
<a name='L988'></a><a href='#L988'>988</a>
|
|
1054
|
+
<a name='L989'></a><a href='#L989'>989</a>
|
|
1055
|
+
<a name='L990'></a><a href='#L990'>990</a>
|
|
1056
|
+
<a name='L991'></a><a href='#L991'>991</a>
|
|
1057
|
+
<a name='L992'></a><a href='#L992'>992</a>
|
|
1058
|
+
<a name='L993'></a><a href='#L993'>993</a>
|
|
1059
|
+
<a name='L994'></a><a href='#L994'>994</a>
|
|
1060
|
+
<a name='L995'></a><a href='#L995'>995</a>
|
|
1061
|
+
<a name='L996'></a><a href='#L996'>996</a>
|
|
1062
|
+
<a name='L997'></a><a href='#L997'>997</a>
|
|
1063
|
+
<a name='L998'></a><a href='#L998'>998</a>
|
|
1064
|
+
<a name='L999'></a><a href='#L999'>999</a>
|
|
1065
|
+
<a name='L1000'></a><a href='#L1000'>1000</a>
|
|
1066
|
+
<a name='L1001'></a><a href='#L1001'>1001</a>
|
|
1067
|
+
<a name='L1002'></a><a href='#L1002'>1002</a>
|
|
1068
|
+
<a name='L1003'></a><a href='#L1003'>1003</a>
|
|
1069
|
+
<a name='L1004'></a><a href='#L1004'>1004</a>
|
|
1070
|
+
<a name='L1005'></a><a href='#L1005'>1005</a>
|
|
1071
|
+
<a name='L1006'></a><a href='#L1006'>1006</a>
|
|
1072
|
+
<a name='L1007'></a><a href='#L1007'>1007</a>
|
|
1073
|
+
<a name='L1008'></a><a href='#L1008'>1008</a>
|
|
1074
|
+
<a name='L1009'></a><a href='#L1009'>1009</a>
|
|
1075
|
+
<a name='L1010'></a><a href='#L1010'>1010</a>
|
|
1076
|
+
<a name='L1011'></a><a href='#L1011'>1011</a>
|
|
1077
|
+
<a name='L1012'></a><a href='#L1012'>1012</a>
|
|
1078
|
+
<a name='L1013'></a><a href='#L1013'>1013</a>
|
|
1079
|
+
<a name='L1014'></a><a href='#L1014'>1014</a>
|
|
1080
|
+
<a name='L1015'></a><a href='#L1015'>1015</a>
|
|
1081
|
+
<a name='L1016'></a><a href='#L1016'>1016</a>
|
|
1082
|
+
<a name='L1017'></a><a href='#L1017'>1017</a>
|
|
1083
|
+
<a name='L1018'></a><a href='#L1018'>1018</a>
|
|
1084
|
+
<a name='L1019'></a><a href='#L1019'>1019</a>
|
|
1085
|
+
<a name='L1020'></a><a href='#L1020'>1020</a>
|
|
1086
|
+
<a name='L1021'></a><a href='#L1021'>1021</a>
|
|
1087
|
+
<a name='L1022'></a><a href='#L1022'>1022</a>
|
|
1088
|
+
<a name='L1023'></a><a href='#L1023'>1023</a>
|
|
1089
|
+
<a name='L1024'></a><a href='#L1024'>1024</a>
|
|
1090
|
+
<a name='L1025'></a><a href='#L1025'>1025</a>
|
|
1091
|
+
<a name='L1026'></a><a href='#L1026'>1026</a>
|
|
1092
|
+
<a name='L1027'></a><a href='#L1027'>1027</a>
|
|
1093
|
+
<a name='L1028'></a><a href='#L1028'>1028</a>
|
|
1094
|
+
<a name='L1029'></a><a href='#L1029'>1029</a>
|
|
1095
|
+
<a name='L1030'></a><a href='#L1030'>1030</a>
|
|
1096
|
+
<a name='L1031'></a><a href='#L1031'>1031</a>
|
|
1097
|
+
<a name='L1032'></a><a href='#L1032'>1032</a>
|
|
1098
|
+
<a name='L1033'></a><a href='#L1033'>1033</a>
|
|
1099
|
+
<a name='L1034'></a><a href='#L1034'>1034</a>
|
|
1100
|
+
<a name='L1035'></a><a href='#L1035'>1035</a>
|
|
1101
|
+
<a name='L1036'></a><a href='#L1036'>1036</a>
|
|
1102
|
+
<a name='L1037'></a><a href='#L1037'>1037</a>
|
|
1103
|
+
<a name='L1038'></a><a href='#L1038'>1038</a>
|
|
1104
|
+
<a name='L1039'></a><a href='#L1039'>1039</a>
|
|
1105
|
+
<a name='L1040'></a><a href='#L1040'>1040</a>
|
|
1106
|
+
<a name='L1041'></a><a href='#L1041'>1041</a>
|
|
1107
|
+
<a name='L1042'></a><a href='#L1042'>1042</a>
|
|
1108
|
+
<a name='L1043'></a><a href='#L1043'>1043</a>
|
|
1109
|
+
<a name='L1044'></a><a href='#L1044'>1044</a>
|
|
1110
|
+
<a name='L1045'></a><a href='#L1045'>1045</a>
|
|
1111
|
+
<a name='L1046'></a><a href='#L1046'>1046</a>
|
|
1112
|
+
<a name='L1047'></a><a href='#L1047'>1047</a>
|
|
1113
|
+
<a name='L1048'></a><a href='#L1048'>1048</a>
|
|
1114
|
+
<a name='L1049'></a><a href='#L1049'>1049</a>
|
|
1115
|
+
<a name='L1050'></a><a href='#L1050'>1050</a>
|
|
1116
|
+
<a name='L1051'></a><a href='#L1051'>1051</a>
|
|
1117
|
+
<a name='L1052'></a><a href='#L1052'>1052</a>
|
|
1118
|
+
<a name='L1053'></a><a href='#L1053'>1053</a>
|
|
1119
|
+
<a name='L1054'></a><a href='#L1054'>1054</a>
|
|
1120
|
+
<a name='L1055'></a><a href='#L1055'>1055</a>
|
|
1121
|
+
<a name='L1056'></a><a href='#L1056'>1056</a>
|
|
1122
|
+
<a name='L1057'></a><a href='#L1057'>1057</a>
|
|
1123
|
+
<a name='L1058'></a><a href='#L1058'>1058</a>
|
|
1124
|
+
<a name='L1059'></a><a href='#L1059'>1059</a>
|
|
1125
|
+
<a name='L1060'></a><a href='#L1060'>1060</a>
|
|
1126
|
+
<a name='L1061'></a><a href='#L1061'>1061</a>
|
|
1127
|
+
<a name='L1062'></a><a href='#L1062'>1062</a>
|
|
1128
|
+
<a name='L1063'></a><a href='#L1063'>1063</a>
|
|
1129
|
+
<a name='L1064'></a><a href='#L1064'>1064</a>
|
|
1130
|
+
<a name='L1065'></a><a href='#L1065'>1065</a>
|
|
1131
|
+
<a name='L1066'></a><a href='#L1066'>1066</a>
|
|
1132
|
+
<a name='L1067'></a><a href='#L1067'>1067</a>
|
|
1133
|
+
<a name='L1068'></a><a href='#L1068'>1068</a>
|
|
1134
|
+
<a name='L1069'></a><a href='#L1069'>1069</a>
|
|
1135
|
+
<a name='L1070'></a><a href='#L1070'>1070</a>
|
|
1136
|
+
<a name='L1071'></a><a href='#L1071'>1071</a>
|
|
1137
|
+
<a name='L1072'></a><a href='#L1072'>1072</a>
|
|
1138
|
+
<a name='L1073'></a><a href='#L1073'>1073</a>
|
|
1139
|
+
<a name='L1074'></a><a href='#L1074'>1074</a>
|
|
1140
|
+
<a name='L1075'></a><a href='#L1075'>1075</a>
|
|
1141
|
+
<a name='L1076'></a><a href='#L1076'>1076</a>
|
|
1142
|
+
<a name='L1077'></a><a href='#L1077'>1077</a>
|
|
1143
|
+
<a name='L1078'></a><a href='#L1078'>1078</a>
|
|
1144
|
+
<a name='L1079'></a><a href='#L1079'>1079</a>
|
|
1145
|
+
<a name='L1080'></a><a href='#L1080'>1080</a>
|
|
1146
|
+
<a name='L1081'></a><a href='#L1081'>1081</a>
|
|
1147
|
+
<a name='L1082'></a><a href='#L1082'>1082</a>
|
|
1148
|
+
<a name='L1083'></a><a href='#L1083'>1083</a>
|
|
1149
|
+
<a name='L1084'></a><a href='#L1084'>1084</a>
|
|
1150
|
+
<a name='L1085'></a><a href='#L1085'>1085</a>
|
|
1151
|
+
<a name='L1086'></a><a href='#L1086'>1086</a>
|
|
1152
|
+
<a name='L1087'></a><a href='#L1087'>1087</a>
|
|
1153
|
+
<a name='L1088'></a><a href='#L1088'>1088</a>
|
|
1154
|
+
<a name='L1089'></a><a href='#L1089'>1089</a>
|
|
1155
|
+
<a name='L1090'></a><a href='#L1090'>1090</a>
|
|
1156
|
+
<a name='L1091'></a><a href='#L1091'>1091</a>
|
|
1157
|
+
<a name='L1092'></a><a href='#L1092'>1092</a>
|
|
1158
|
+
<a name='L1093'></a><a href='#L1093'>1093</a>
|
|
1159
|
+
<a name='L1094'></a><a href='#L1094'>1094</a>
|
|
1160
|
+
<a name='L1095'></a><a href='#L1095'>1095</a>
|
|
1161
|
+
<a name='L1096'></a><a href='#L1096'>1096</a>
|
|
1162
|
+
<a name='L1097'></a><a href='#L1097'>1097</a>
|
|
1163
|
+
<a name='L1098'></a><a href='#L1098'>1098</a>
|
|
1164
|
+
<a name='L1099'></a><a href='#L1099'>1099</a>
|
|
1165
|
+
<a name='L1100'></a><a href='#L1100'>1100</a>
|
|
1166
|
+
<a name='L1101'></a><a href='#L1101'>1101</a>
|
|
1167
|
+
<a name='L1102'></a><a href='#L1102'>1102</a>
|
|
1168
|
+
<a name='L1103'></a><a href='#L1103'>1103</a>
|
|
1169
|
+
<a name='L1104'></a><a href='#L1104'>1104</a>
|
|
1170
|
+
<a name='L1105'></a><a href='#L1105'>1105</a>
|
|
1171
|
+
<a name='L1106'></a><a href='#L1106'>1106</a>
|
|
1172
|
+
<a name='L1107'></a><a href='#L1107'>1107</a>
|
|
1173
|
+
<a name='L1108'></a><a href='#L1108'>1108</a>
|
|
1174
|
+
<a name='L1109'></a><a href='#L1109'>1109</a>
|
|
1175
|
+
<a name='L1110'></a><a href='#L1110'>1110</a>
|
|
1176
|
+
<a name='L1111'></a><a href='#L1111'>1111</a>
|
|
1177
|
+
<a name='L1112'></a><a href='#L1112'>1112</a>
|
|
1178
|
+
<a name='L1113'></a><a href='#L1113'>1113</a>
|
|
1179
|
+
<a name='L1114'></a><a href='#L1114'>1114</a>
|
|
1180
|
+
<a name='L1115'></a><a href='#L1115'>1115</a>
|
|
1181
|
+
<a name='L1116'></a><a href='#L1116'>1116</a>
|
|
1182
|
+
<a name='L1117'></a><a href='#L1117'>1117</a>
|
|
1183
|
+
<a name='L1118'></a><a href='#L1118'>1118</a>
|
|
1184
|
+
<a name='L1119'></a><a href='#L1119'>1119</a>
|
|
1185
|
+
<a name='L1120'></a><a href='#L1120'>1120</a>
|
|
1186
|
+
<a name='L1121'></a><a href='#L1121'>1121</a>
|
|
1187
|
+
<a name='L1122'></a><a href='#L1122'>1122</a>
|
|
1188
|
+
<a name='L1123'></a><a href='#L1123'>1123</a>
|
|
1189
|
+
<a name='L1124'></a><a href='#L1124'>1124</a>
|
|
1190
|
+
<a name='L1125'></a><a href='#L1125'>1125</a>
|
|
1191
|
+
<a name='L1126'></a><a href='#L1126'>1126</a>
|
|
1192
|
+
<a name='L1127'></a><a href='#L1127'>1127</a>
|
|
1193
|
+
<a name='L1128'></a><a href='#L1128'>1128</a>
|
|
1194
|
+
<a name='L1129'></a><a href='#L1129'>1129</a>
|
|
1195
|
+
<a name='L1130'></a><a href='#L1130'>1130</a>
|
|
1196
|
+
<a name='L1131'></a><a href='#L1131'>1131</a>
|
|
1197
|
+
<a name='L1132'></a><a href='#L1132'>1132</a>
|
|
1198
|
+
<a name='L1133'></a><a href='#L1133'>1133</a>
|
|
1199
|
+
<a name='L1134'></a><a href='#L1134'>1134</a>
|
|
1200
|
+
<a name='L1135'></a><a href='#L1135'>1135</a>
|
|
1201
|
+
<a name='L1136'></a><a href='#L1136'>1136</a>
|
|
1202
|
+
<a name='L1137'></a><a href='#L1137'>1137</a>
|
|
1203
|
+
<a name='L1138'></a><a href='#L1138'>1138</a>
|
|
1204
|
+
<a name='L1139'></a><a href='#L1139'>1139</a>
|
|
1205
|
+
<a name='L1140'></a><a href='#L1140'>1140</a>
|
|
1206
|
+
<a name='L1141'></a><a href='#L1141'>1141</a>
|
|
1207
|
+
<a name='L1142'></a><a href='#L1142'>1142</a>
|
|
1208
|
+
<a name='L1143'></a><a href='#L1143'>1143</a>
|
|
1209
|
+
<a name='L1144'></a><a href='#L1144'>1144</a>
|
|
1210
|
+
<a name='L1145'></a><a href='#L1145'>1145</a>
|
|
1211
|
+
<a name='L1146'></a><a href='#L1146'>1146</a>
|
|
1212
|
+
<a name='L1147'></a><a href='#L1147'>1147</a>
|
|
1213
|
+
<a name='L1148'></a><a href='#L1148'>1148</a>
|
|
1214
|
+
<a name='L1149'></a><a href='#L1149'>1149</a>
|
|
1215
|
+
<a name='L1150'></a><a href='#L1150'>1150</a>
|
|
1216
|
+
<a name='L1151'></a><a href='#L1151'>1151</a>
|
|
1217
|
+
<a name='L1152'></a><a href='#L1152'>1152</a>
|
|
1218
|
+
<a name='L1153'></a><a href='#L1153'>1153</a>
|
|
1219
|
+
<a name='L1154'></a><a href='#L1154'>1154</a>
|
|
1220
|
+
<a name='L1155'></a><a href='#L1155'>1155</a>
|
|
1221
|
+
<a name='L1156'></a><a href='#L1156'>1156</a>
|
|
1222
|
+
<a name='L1157'></a><a href='#L1157'>1157</a>
|
|
1223
|
+
<a name='L1158'></a><a href='#L1158'>1158</a>
|
|
1224
|
+
<a name='L1159'></a><a href='#L1159'>1159</a>
|
|
1225
|
+
<a name='L1160'></a><a href='#L1160'>1160</a>
|
|
1226
|
+
<a name='L1161'></a><a href='#L1161'>1161</a>
|
|
1227
|
+
<a name='L1162'></a><a href='#L1162'>1162</a>
|
|
1228
|
+
<a name='L1163'></a><a href='#L1163'>1163</a>
|
|
1229
|
+
<a name='L1164'></a><a href='#L1164'>1164</a>
|
|
1230
|
+
<a name='L1165'></a><a href='#L1165'>1165</a>
|
|
1231
|
+
<a name='L1166'></a><a href='#L1166'>1166</a>
|
|
1232
|
+
<a name='L1167'></a><a href='#L1167'>1167</a>
|
|
1233
|
+
<a name='L1168'></a><a href='#L1168'>1168</a>
|
|
1234
|
+
<a name='L1169'></a><a href='#L1169'>1169</a>
|
|
1235
|
+
<a name='L1170'></a><a href='#L1170'>1170</a>
|
|
1236
|
+
<a name='L1171'></a><a href='#L1171'>1171</a>
|
|
1237
|
+
<a name='L1172'></a><a href='#L1172'>1172</a>
|
|
1238
|
+
<a name='L1173'></a><a href='#L1173'>1173</a>
|
|
1239
|
+
<a name='L1174'></a><a href='#L1174'>1174</a>
|
|
1240
|
+
<a name='L1175'></a><a href='#L1175'>1175</a>
|
|
1241
|
+
<a name='L1176'></a><a href='#L1176'>1176</a>
|
|
1242
|
+
<a name='L1177'></a><a href='#L1177'>1177</a>
|
|
1243
|
+
<a name='L1178'></a><a href='#L1178'>1178</a>
|
|
1244
|
+
<a name='L1179'></a><a href='#L1179'>1179</a>
|
|
1245
|
+
<a name='L1180'></a><a href='#L1180'>1180</a>
|
|
1246
|
+
<a name='L1181'></a><a href='#L1181'>1181</a>
|
|
1247
|
+
<a name='L1182'></a><a href='#L1182'>1182</a>
|
|
1248
|
+
<a name='L1183'></a><a href='#L1183'>1183</a>
|
|
1249
|
+
<a name='L1184'></a><a href='#L1184'>1184</a>
|
|
1250
|
+
<a name='L1185'></a><a href='#L1185'>1185</a>
|
|
1251
|
+
<a name='L1186'></a><a href='#L1186'>1186</a>
|
|
1252
|
+
<a name='L1187'></a><a href='#L1187'>1187</a>
|
|
1253
|
+
<a name='L1188'></a><a href='#L1188'>1188</a>
|
|
1254
|
+
<a name='L1189'></a><a href='#L1189'>1189</a>
|
|
1255
|
+
<a name='L1190'></a><a href='#L1190'>1190</a>
|
|
1256
|
+
<a name='L1191'></a><a href='#L1191'>1191</a>
|
|
1257
|
+
<a name='L1192'></a><a href='#L1192'>1192</a>
|
|
1258
|
+
<a name='L1193'></a><a href='#L1193'>1193</a>
|
|
1259
|
+
<a name='L1194'></a><a href='#L1194'>1194</a>
|
|
1260
|
+
<a name='L1195'></a><a href='#L1195'>1195</a>
|
|
1261
|
+
<a name='L1196'></a><a href='#L1196'>1196</a>
|
|
1262
|
+
<a name='L1197'></a><a href='#L1197'>1197</a>
|
|
1263
|
+
<a name='L1198'></a><a href='#L1198'>1198</a>
|
|
1264
|
+
<a name='L1199'></a><a href='#L1199'>1199</a>
|
|
1265
|
+
<a name='L1200'></a><a href='#L1200'>1200</a>
|
|
1266
|
+
<a name='L1201'></a><a href='#L1201'>1201</a>
|
|
1267
|
+
<a name='L1202'></a><a href='#L1202'>1202</a>
|
|
1268
|
+
<a name='L1203'></a><a href='#L1203'>1203</a>
|
|
1269
|
+
<a name='L1204'></a><a href='#L1204'>1204</a>
|
|
1270
|
+
<a name='L1205'></a><a href='#L1205'>1205</a>
|
|
1271
|
+
<a name='L1206'></a><a href='#L1206'>1206</a>
|
|
1272
|
+
<a name='L1207'></a><a href='#L1207'>1207</a>
|
|
1273
|
+
<a name='L1208'></a><a href='#L1208'>1208</a>
|
|
1274
|
+
<a name='L1209'></a><a href='#L1209'>1209</a>
|
|
1275
|
+
<a name='L1210'></a><a href='#L1210'>1210</a>
|
|
1276
|
+
<a name='L1211'></a><a href='#L1211'>1211</a>
|
|
1277
|
+
<a name='L1212'></a><a href='#L1212'>1212</a>
|
|
1278
|
+
<a name='L1213'></a><a href='#L1213'>1213</a>
|
|
1279
|
+
<a name='L1214'></a><a href='#L1214'>1214</a>
|
|
1280
|
+
<a name='L1215'></a><a href='#L1215'>1215</a>
|
|
1281
|
+
<a name='L1216'></a><a href='#L1216'>1216</a>
|
|
1282
|
+
<a name='L1217'></a><a href='#L1217'>1217</a>
|
|
1283
|
+
<a name='L1218'></a><a href='#L1218'>1218</a>
|
|
1284
|
+
<a name='L1219'></a><a href='#L1219'>1219</a>
|
|
1285
|
+
<a name='L1220'></a><a href='#L1220'>1220</a>
|
|
1286
|
+
<a name='L1221'></a><a href='#L1221'>1221</a>
|
|
1287
|
+
<a name='L1222'></a><a href='#L1222'>1222</a>
|
|
1288
|
+
<a name='L1223'></a><a href='#L1223'>1223</a>
|
|
1289
|
+
<a name='L1224'></a><a href='#L1224'>1224</a>
|
|
1290
|
+
<a name='L1225'></a><a href='#L1225'>1225</a>
|
|
1291
|
+
<a name='L1226'></a><a href='#L1226'>1226</a>
|
|
1292
|
+
<a name='L1227'></a><a href='#L1227'>1227</a>
|
|
1293
|
+
<a name='L1228'></a><a href='#L1228'>1228</a>
|
|
1294
|
+
<a name='L1229'></a><a href='#L1229'>1229</a>
|
|
1295
|
+
<a name='L1230'></a><a href='#L1230'>1230</a>
|
|
1296
|
+
<a name='L1231'></a><a href='#L1231'>1231</a>
|
|
1297
|
+
<a name='L1232'></a><a href='#L1232'>1232</a>
|
|
1298
|
+
<a name='L1233'></a><a href='#L1233'>1233</a>
|
|
1299
|
+
<a name='L1234'></a><a href='#L1234'>1234</a>
|
|
1300
|
+
<a name='L1235'></a><a href='#L1235'>1235</a>
|
|
1301
|
+
<a name='L1236'></a><a href='#L1236'>1236</a>
|
|
1302
|
+
<a name='L1237'></a><a href='#L1237'>1237</a>
|
|
1303
|
+
<a name='L1238'></a><a href='#L1238'>1238</a>
|
|
1304
|
+
<a name='L1239'></a><a href='#L1239'>1239</a>
|
|
1305
|
+
<a name='L1240'></a><a href='#L1240'>1240</a>
|
|
1306
|
+
<a name='L1241'></a><a href='#L1241'>1241</a>
|
|
1307
|
+
<a name='L1242'></a><a href='#L1242'>1242</a></td><td class="line-coverage quiet"><span class="cline-any cline-no"> </span>
|
|
1308
|
+
<span class="cline-any cline-no"> </span>
|
|
1309
|
+
<span class="cline-any cline-neutral"> </span>
|
|
934
1310
|
<span class="cline-any cline-no"> </span>
|
|
935
1311
|
<span class="cline-any cline-neutral"> </span>
|
|
936
1312
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -962,7 +1338,6 @@
|
|
|
962
1338
|
<span class="cline-any cline-neutral"> </span>
|
|
963
1339
|
<span class="cline-any cline-neutral"> </span>
|
|
964
1340
|
<span class="cline-any cline-neutral"> </span>
|
|
965
|
-
<span class="cline-any cline-neutral"> </span>
|
|
966
1341
|
<span class="cline-any cline-no"> </span>
|
|
967
1342
|
<span class="cline-any cline-no"> </span>
|
|
968
1343
|
<span class="cline-any cline-no"> </span>
|
|
@@ -994,6 +1369,7 @@
|
|
|
994
1369
|
<span class="cline-any cline-no"> </span>
|
|
995
1370
|
<span class="cline-any cline-no"> </span>
|
|
996
1371
|
<span class="cline-any cline-no"> </span>
|
|
1372
|
+
<span class="cline-any cline-no"> </span>
|
|
997
1373
|
<span class="cline-any cline-neutral"> </span>
|
|
998
1374
|
<span class="cline-any cline-neutral"> </span>
|
|
999
1375
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1030,6 +1406,7 @@
|
|
|
1030
1406
|
<span class="cline-any cline-no"> </span>
|
|
1031
1407
|
<span class="cline-any cline-no"> </span>
|
|
1032
1408
|
<span class="cline-any cline-no"> </span>
|
|
1409
|
+
<span class="cline-any cline-no"> </span>
|
|
1033
1410
|
<span class="cline-any cline-neutral"> </span>
|
|
1034
1411
|
<span class="cline-any cline-neutral"> </span>
|
|
1035
1412
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1060,66 +1437,180 @@
|
|
|
1060
1437
|
<span class="cline-any cline-neutral"> </span>
|
|
1061
1438
|
<span class="cline-any cline-neutral"> </span>
|
|
1062
1439
|
<span class="cline-any cline-neutral"> </span>
|
|
1440
|
+
<span class="cline-any cline-no"> </span>
|
|
1063
1441
|
<span class="cline-any cline-neutral"> </span>
|
|
1064
1442
|
<span class="cline-any cline-neutral"> </span>
|
|
1065
1443
|
<span class="cline-any cline-no"> </span>
|
|
1444
|
+
<span class="cline-any cline-no"> </span>
|
|
1445
|
+
<span class="cline-any cline-no"> </span>
|
|
1446
|
+
<span class="cline-any cline-no"> </span>
|
|
1447
|
+
<span class="cline-any cline-no"> </span>
|
|
1066
1448
|
<span class="cline-any cline-neutral"> </span>
|
|
1067
1449
|
<span class="cline-any cline-neutral"> </span>
|
|
1068
1450
|
<span class="cline-any cline-no"> </span>
|
|
1451
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1452
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1453
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1454
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1455
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1456
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1457
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1458
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1459
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1069
1460
|
<span class="cline-any cline-no"> </span>
|
|
1461
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1462
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1463
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1464
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1070
1465
|
<span class="cline-any cline-no"> </span>
|
|
1071
1466
|
<span class="cline-any cline-no"> </span>
|
|
1467
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1468
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1469
|
+
<span class="cline-any cline-no"> </span>
|
|
1470
|
+
<span class="cline-any cline-no"> </span>
|
|
1471
|
+
<span class="cline-any cline-no"> </span>
|
|
1472
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1473
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1474
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1475
|
+
<span class="cline-any cline-no"> </span>
|
|
1072
1476
|
<span class="cline-any cline-no"> </span>
|
|
1073
1477
|
<span class="cline-any cline-neutral"> </span>
|
|
1074
1478
|
<span class="cline-any cline-neutral"> </span>
|
|
1075
1479
|
<span class="cline-any cline-no"> </span>
|
|
1480
|
+
<span class="cline-any cline-no"> </span>
|
|
1481
|
+
<span class="cline-any cline-no"> </span>
|
|
1076
1482
|
<span class="cline-any cline-neutral"> </span>
|
|
1077
1483
|
<span class="cline-any cline-neutral"> </span>
|
|
1484
|
+
<span class="cline-any cline-no"> </span>
|
|
1078
1485
|
<span class="cline-any cline-neutral"> </span>
|
|
1486
|
+
<span class="cline-any cline-no"> </span>
|
|
1079
1487
|
<span class="cline-any cline-neutral"> </span>
|
|
1080
1488
|
<span class="cline-any cline-neutral"> </span>
|
|
1081
1489
|
<span class="cline-any cline-neutral"> </span>
|
|
1082
1490
|
<span class="cline-any cline-neutral"> </span>
|
|
1083
1491
|
<span class="cline-any cline-neutral"> </span>
|
|
1084
1492
|
<span class="cline-any cline-neutral"> </span>
|
|
1493
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1494
|
+
<span class="cline-any cline-no"> </span>
|
|
1495
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1496
|
+
<span class="cline-any cline-no"> </span>
|
|
1497
|
+
<span class="cline-any cline-no"> </span>
|
|
1498
|
+
<span class="cline-any cline-no"> </span>
|
|
1085
1499
|
<span class="cline-any cline-no"> </span>
|
|
1086
1500
|
<span class="cline-any cline-neutral"> </span>
|
|
1087
1501
|
<span class="cline-any cline-neutral"> </span>
|
|
1502
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1503
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1504
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1505
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1506
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1507
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1508
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1509
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1510
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1511
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1512
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1513
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1514
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1515
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1516
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1517
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1518
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1519
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1520
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1521
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1088
1522
|
<span class="cline-any cline-no"> </span>
|
|
1089
1523
|
<span class="cline-any cline-no"> </span>
|
|
1090
1524
|
<span class="cline-any cline-no"> </span>
|
|
1091
1525
|
<span class="cline-any cline-neutral"> </span>
|
|
1092
1526
|
<span class="cline-any cline-neutral"> </span>
|
|
1527
|
+
<span class="cline-any cline-no"> </span>
|
|
1528
|
+
<span class="cline-any cline-no"> </span>
|
|
1529
|
+
<span class="cline-any cline-no"> </span>
|
|
1530
|
+
<span class="cline-any cline-no"> </span>
|
|
1531
|
+
<span class="cline-any cline-no"> </span>
|
|
1532
|
+
<span class="cline-any cline-no"> </span>
|
|
1533
|
+
<span class="cline-any cline-no"> </span>
|
|
1534
|
+
<span class="cline-any cline-no"> </span>
|
|
1535
|
+
<span class="cline-any cline-no"> </span>
|
|
1536
|
+
<span class="cline-any cline-no"> </span>
|
|
1537
|
+
<span class="cline-any cline-no"> </span>
|
|
1538
|
+
<span class="cline-any cline-no"> </span>
|
|
1539
|
+
<span class="cline-any cline-no"> </span>
|
|
1540
|
+
<span class="cline-any cline-no"> </span>
|
|
1093
1541
|
<span class="cline-any cline-neutral"> </span>
|
|
1094
1542
|
<span class="cline-any cline-no"> </span>
|
|
1095
1543
|
<span class="cline-any cline-no"> </span>
|
|
1096
1544
|
<span class="cline-any cline-neutral"> </span>
|
|
1545
|
+
<span class="cline-any cline-no"> </span>
|
|
1097
1546
|
<span class="cline-any cline-neutral"> </span>
|
|
1098
1547
|
<span class="cline-any cline-no"> </span>
|
|
1099
1548
|
<span class="cline-any cline-no"> </span>
|
|
1549
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1550
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1551
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1552
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1553
|
+
<span class="cline-any cline-no"> </span>
|
|
1100
1554
|
<span class="cline-any cline-no"> </span>
|
|
1101
1555
|
<span class="cline-any cline-neutral"> </span>
|
|
1102
1556
|
<span class="cline-any cline-neutral"> </span>
|
|
1103
1557
|
<span class="cline-any cline-no"> </span>
|
|
1558
|
+
<span class="cline-any cline-no"> </span>
|
|
1104
1559
|
<span class="cline-any cline-neutral"> </span>
|
|
1105
1560
|
<span class="cline-any cline-neutral"> </span>
|
|
1561
|
+
<span class="cline-any cline-no"> </span>
|
|
1562
|
+
<span class="cline-any cline-no"> </span>
|
|
1106
1563
|
<span class="cline-any cline-neutral"> </span>
|
|
1564
|
+
<span class="cline-any cline-no"> </span>
|
|
1565
|
+
<span class="cline-any cline-no"> </span>
|
|
1566
|
+
<span class="cline-any cline-no"> </span>
|
|
1567
|
+
<span class="cline-any cline-no"> </span>
|
|
1568
|
+
<span class="cline-any cline-no"> </span>
|
|
1569
|
+
<span class="cline-any cline-no"> </span>
|
|
1570
|
+
<span class="cline-any cline-no"> </span>
|
|
1571
|
+
<span class="cline-any cline-no"> </span>
|
|
1572
|
+
<span class="cline-any cline-no"> </span>
|
|
1573
|
+
<span class="cline-any cline-no"> </span>
|
|
1574
|
+
<span class="cline-any cline-no"> </span>
|
|
1575
|
+
<span class="cline-any cline-no"> </span>
|
|
1576
|
+
<span class="cline-any cline-no"> </span>
|
|
1577
|
+
<span class="cline-any cline-no"> </span>
|
|
1578
|
+
<span class="cline-any cline-no"> </span>
|
|
1579
|
+
<span class="cline-any cline-no"> </span>
|
|
1580
|
+
<span class="cline-any cline-no"> </span>
|
|
1581
|
+
<span class="cline-any cline-no"> </span>
|
|
1582
|
+
<span class="cline-any cline-no"> </span>
|
|
1583
|
+
<span class="cline-any cline-no"> </span>
|
|
1584
|
+
<span class="cline-any cline-no"> </span>
|
|
1585
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1586
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1587
|
+
<span class="cline-any cline-no"> </span>
|
|
1107
1588
|
<span class="cline-any cline-neutral"> </span>
|
|
1108
1589
|
<span class="cline-any cline-neutral"> </span>
|
|
1109
1590
|
<span class="cline-any cline-neutral"> </span>
|
|
1591
|
+
<span class="cline-any cline-no"> </span>
|
|
1110
1592
|
<span class="cline-any cline-neutral"> </span>
|
|
1111
1593
|
<span class="cline-any cline-no"> </span>
|
|
1112
1594
|
<span class="cline-any cline-no"> </span>
|
|
1595
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1596
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1597
|
+
<span class="cline-any cline-no"> </span>
|
|
1113
1598
|
<span class="cline-any cline-no"> </span>
|
|
1114
1599
|
<span class="cline-any cline-no"> </span>
|
|
1115
1600
|
<span class="cline-any cline-neutral"> </span>
|
|
1116
1601
|
<span class="cline-any cline-neutral"> </span>
|
|
1117
1602
|
<span class="cline-any cline-neutral"> </span>
|
|
1603
|
+
<span class="cline-any cline-no"> </span>
|
|
1604
|
+
<span class="cline-any cline-no"> </span>
|
|
1118
1605
|
<span class="cline-any cline-neutral"> </span>
|
|
1606
|
+
<span class="cline-any cline-no"> </span>
|
|
1119
1607
|
<span class="cline-any cline-neutral"> </span>
|
|
1608
|
+
<span class="cline-any cline-no"> </span>
|
|
1120
1609
|
<span class="cline-any cline-neutral"> </span>
|
|
1121
1610
|
<span class="cline-any cline-neutral"> </span>
|
|
1611
|
+
<span class="cline-any cline-no"> </span>
|
|
1122
1612
|
<span class="cline-any cline-neutral"> </span>
|
|
1613
|
+
<span class="cline-any cline-no"> </span>
|
|
1123
1614
|
<span class="cline-any cline-neutral"> </span>
|
|
1124
1615
|
<span class="cline-any cline-neutral"> </span>
|
|
1125
1616
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1128,6 +1619,8 @@
|
|
|
1128
1619
|
<span class="cline-any cline-neutral"> </span>
|
|
1129
1620
|
<span class="cline-any cline-neutral"> </span>
|
|
1130
1621
|
<span class="cline-any cline-neutral"> </span>
|
|
1622
|
+
<span class="cline-any cline-no"> </span>
|
|
1623
|
+
<span class="cline-any cline-no"> </span>
|
|
1131
1624
|
<span class="cline-any cline-neutral"> </span>
|
|
1132
1625
|
<span class="cline-any cline-neutral"> </span>
|
|
1133
1626
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1137,47 +1630,109 @@
|
|
|
1137
1630
|
<span class="cline-any cline-no"> </span>
|
|
1138
1631
|
<span class="cline-any cline-no"> </span>
|
|
1139
1632
|
<span class="cline-any cline-no"> </span>
|
|
1140
|
-
<span class="cline-any cline-
|
|
1633
|
+
<span class="cline-any cline-no"> </span>
|
|
1141
1634
|
<span class="cline-any cline-neutral"> </span>
|
|
1142
1635
|
<span class="cline-any cline-no"> </span>
|
|
1143
1636
|
<span class="cline-any cline-no"> </span>
|
|
1144
1637
|
<span class="cline-any cline-no"> </span>
|
|
1638
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1145
1639
|
<span class="cline-any cline-no"> </span>
|
|
1146
1640
|
<span class="cline-any cline-no"> </span>
|
|
1147
1641
|
<span class="cline-any cline-no"> </span>
|
|
1148
1642
|
<span class="cline-any cline-no"> </span>
|
|
1643
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1149
1644
|
<span class="cline-any cline-no"> </span>
|
|
1150
1645
|
<span class="cline-any cline-no"> </span>
|
|
1151
1646
|
<span class="cline-any cline-no"> </span>
|
|
1152
1647
|
<span class="cline-any cline-no"> </span>
|
|
1648
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1649
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1650
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1651
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1652
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1653
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1654
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1655
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1656
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1657
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1658
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1659
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1153
1660
|
<span class="cline-any cline-no"> </span>
|
|
1154
1661
|
<span class="cline-any cline-no"> </span>
|
|
1662
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1663
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1664
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1665
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1666
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1667
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1668
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1669
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1670
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1155
1671
|
<span class="cline-any cline-no"> </span>
|
|
1672
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1673
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1156
1674
|
<span class="cline-any cline-no"> </span>
|
|
1157
1675
|
<span class="cline-any cline-neutral"> </span>
|
|
1676
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1677
|
+
<span class="cline-any cline-no"> </span>
|
|
1158
1678
|
<span class="cline-any cline-no"> </span>
|
|
1159
1679
|
<span class="cline-any cline-neutral"> </span>
|
|
1680
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1681
|
+
<span class="cline-any cline-no"> </span>
|
|
1682
|
+
<span class="cline-any cline-no"> </span>
|
|
1160
1683
|
<span class="cline-any cline-no"> </span>
|
|
1161
1684
|
<span class="cline-any cline-no"> </span>
|
|
1162
1685
|
<span class="cline-any cline-neutral"> </span>
|
|
1686
|
+
<span class="cline-any cline-no"> </span>
|
|
1687
|
+
<span class="cline-any cline-no"> </span>
|
|
1163
1688
|
<span class="cline-any cline-neutral"> </span>
|
|
1164
1689
|
<span class="cline-any cline-neutral"> </span>
|
|
1165
1690
|
<span class="cline-any cline-neutral"> </span>
|
|
1166
1691
|
<span class="cline-any cline-no"> </span>
|
|
1167
1692
|
<span class="cline-any cline-no"> </span>
|
|
1693
|
+
<span class="cline-any cline-no"> </span>
|
|
1694
|
+
<span class="cline-any cline-no"> </span>
|
|
1695
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1696
|
+
<span class="cline-any cline-no"> </span>
|
|
1697
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1698
|
+
<span class="cline-any cline-no"> </span>
|
|
1699
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1700
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1701
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1702
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1168
1703
|
<span class="cline-any cline-neutral"> </span>
|
|
1169
1704
|
<span class="cline-any cline-neutral"> </span>
|
|
1170
1705
|
<span class="cline-any cline-no"> </span>
|
|
1171
1706
|
<span class="cline-any cline-no"> </span>
|
|
1172
1707
|
<span class="cline-any cline-neutral"> </span>
|
|
1173
1708
|
<span class="cline-any cline-neutral"> </span>
|
|
1709
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1710
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1711
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1712
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1713
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1714
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1715
|
+
<span class="cline-any cline-no"> </span>
|
|
1716
|
+
<span class="cline-any cline-no"> </span>
|
|
1174
1717
|
<span class="cline-any cline-no"> </span>
|
|
1175
1718
|
<span class="cline-any cline-no"> </span>
|
|
1176
1719
|
<span class="cline-any cline-neutral"> </span>
|
|
1177
1720
|
<span class="cline-any cline-no"> </span>
|
|
1178
1721
|
<span class="cline-any cline-no"> </span>
|
|
1179
1722
|
<span class="cline-any cline-no"> </span>
|
|
1723
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1724
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1725
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1726
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1180
1727
|
<span class="cline-any cline-no"> </span>
|
|
1728
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1729
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1730
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1731
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1732
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1733
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1734
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1735
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1181
1736
|
<span class="cline-any cline-no"> </span>
|
|
1182
1737
|
<span class="cline-any cline-no"> </span>
|
|
1183
1738
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1185,43 +1740,104 @@
|
|
|
1185
1740
|
<span class="cline-any cline-no"> </span>
|
|
1186
1741
|
<span class="cline-any cline-no"> </span>
|
|
1187
1742
|
<span class="cline-any cline-no"> </span>
|
|
1743
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1744
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1745
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1746
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1747
|
+
<span class="cline-any cline-no"> </span>
|
|
1748
|
+
<span class="cline-any cline-no"> </span>
|
|
1749
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1750
|
+
<span class="cline-any cline-no"> </span>
|
|
1751
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1752
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1753
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1754
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1188
1755
|
<span class="cline-any cline-no"> </span>
|
|
1189
1756
|
<span class="cline-any cline-no"> </span>
|
|
1190
1757
|
<span class="cline-any cline-no"> </span>
|
|
1758
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1759
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1191
1760
|
<span class="cline-any cline-no"> </span>
|
|
1761
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1762
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1192
1763
|
<span class="cline-any cline-no"> </span>
|
|
1764
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1765
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1766
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1193
1767
|
<span class="cline-any cline-no"> </span>
|
|
1194
1768
|
<span class="cline-any cline-no"> </span>
|
|
1195
1769
|
<span class="cline-any cline-no"> </span>
|
|
1196
1770
|
<span class="cline-any cline-no"> </span>
|
|
1771
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1197
1772
|
<span class="cline-any cline-no"> </span>
|
|
1198
1773
|
<span class="cline-any cline-neutral"> </span>
|
|
1199
1774
|
<span class="cline-any cline-neutral"> </span>
|
|
1775
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1776
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1777
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1778
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1779
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1780
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1781
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1200
1782
|
<span class="cline-any cline-no"> </span>
|
|
1201
1783
|
<span class="cline-any cline-neutral"> </span>
|
|
1202
1784
|
<span class="cline-any cline-neutral"> </span>
|
|
1203
1785
|
<span class="cline-any cline-neutral"> </span>
|
|
1204
1786
|
<span class="cline-any cline-no"> </span>
|
|
1787
|
+
<span class="cline-any cline-no"> </span>
|
|
1788
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1789
|
+
<span class="cline-any cline-no"> </span>
|
|
1205
1790
|
<span class="cline-any cline-neutral"> </span>
|
|
1206
1791
|
<span class="cline-any cline-neutral"> </span>
|
|
1207
1792
|
<span class="cline-any cline-neutral"> </span>
|
|
1208
1793
|
<span class="cline-any cline-no"> </span>
|
|
1209
1794
|
<span class="cline-any cline-no"> </span>
|
|
1795
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1210
1796
|
<span class="cline-any cline-no"> </span>
|
|
1211
1797
|
<span class="cline-any cline-neutral"> </span>
|
|
1212
1798
|
<span class="cline-any cline-neutral"> </span>
|
|
1213
1799
|
<span class="cline-any cline-neutral"> </span>
|
|
1800
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1801
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1802
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1803
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1804
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1805
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1806
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1214
1807
|
<span class="cline-any cline-no"> </span>
|
|
1215
1808
|
<span class="cline-any cline-no"> </span>
|
|
1216
1809
|
<span class="cline-any cline-neutral"> </span>
|
|
1217
1810
|
<span class="cline-any cline-no"> </span>
|
|
1811
|
+
<span class="cline-any cline-no"> </span>
|
|
1812
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1218
1813
|
<span class="cline-any cline-neutral"> </span>
|
|
1219
1814
|
<span class="cline-any cline-no"> </span>
|
|
1815
|
+
<span class="cline-any cline-no"> </span>
|
|
1816
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1817
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1818
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1220
1819
|
<span class="cline-any cline-neutral"> </span>
|
|
1221
1820
|
<span class="cline-any cline-neutral"> </span>
|
|
1821
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1822
|
+
<span class="cline-any cline-no"> </span>
|
|
1823
|
+
<span class="cline-any cline-no"> </span>
|
|
1824
|
+
<span class="cline-any cline-no"> </span>
|
|
1825
|
+
<span class="cline-any cline-no"> </span>
|
|
1222
1826
|
<span class="cline-any cline-no"> </span>
|
|
1223
1827
|
<span class="cline-any cline-neutral"> </span>
|
|
1224
1828
|
<span class="cline-any cline-no"> </span>
|
|
1829
|
+
<span class="cline-any cline-no"> </span>
|
|
1830
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1831
|
+
<span class="cline-any cline-no"> </span>
|
|
1832
|
+
<span class="cline-any cline-no"> </span>
|
|
1833
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1834
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1835
|
+
<span class="cline-any cline-no"> </span>
|
|
1836
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1837
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1838
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1839
|
+
<span class="cline-any cline-no"> </span>
|
|
1840
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1225
1841
|
<span class="cline-any cline-neutral"> </span>
|
|
1226
1842
|
<span class="cline-any cline-neutral"> </span>
|
|
1227
1843
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1231,46 +1847,98 @@
|
|
|
1231
1847
|
<span class="cline-any cline-neutral"> </span>
|
|
1232
1848
|
<span class="cline-any cline-neutral"> </span>
|
|
1233
1849
|
<span class="cline-any cline-no"> </span>
|
|
1850
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1851
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1852
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1853
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1854
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1855
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1234
1856
|
<span class="cline-any cline-no"> </span>
|
|
1235
1857
|
<span class="cline-any cline-neutral"> </span>
|
|
1236
1858
|
<span class="cline-any cline-neutral"> </span>
|
|
1237
1859
|
<span class="cline-any cline-neutral"> </span>
|
|
1860
|
+
<span class="cline-any cline-no"> </span>
|
|
1861
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1862
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1863
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1864
|
+
<span class="cline-any cline-no"> </span>
|
|
1865
|
+
<span class="cline-any cline-no"> </span>
|
|
1866
|
+
<span class="cline-any cline-no"> </span>
|
|
1867
|
+
<span class="cline-any cline-no"> </span>
|
|
1238
1868
|
<span class="cline-any cline-neutral"> </span>
|
|
1869
|
+
<span class="cline-any cline-no"> </span>
|
|
1870
|
+
<span class="cline-any cline-no"> </span>
|
|
1239
1871
|
<span class="cline-any cline-neutral"> </span>
|
|
1872
|
+
<span class="cline-any cline-no"> </span>
|
|
1240
1873
|
<span class="cline-any cline-neutral"> </span>
|
|
1241
1874
|
<span class="cline-any cline-no"> </span>
|
|
1875
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1242
1876
|
<span class="cline-any cline-no"> </span>
|
|
1243
1877
|
<span class="cline-any cline-no"> </span>
|
|
1244
1878
|
<span class="cline-any cline-no"> </span>
|
|
1245
1879
|
<span class="cline-any cline-neutral"> </span>
|
|
1880
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1246
1881
|
<span class="cline-any cline-no"> </span>
|
|
1882
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1883
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1884
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1247
1885
|
<span class="cline-any cline-no"> </span>
|
|
1886
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1887
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1888
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1248
1889
|
<span class="cline-any cline-no"> </span>
|
|
1249
1890
|
<span class="cline-any cline-neutral"> </span>
|
|
1891
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1892
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1250
1893
|
<span class="cline-any cline-no"> </span>
|
|
1251
1894
|
<span class="cline-any cline-no"> </span>
|
|
1252
1895
|
<span class="cline-any cline-no"> </span>
|
|
1896
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1897
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1253
1898
|
<span class="cline-any cline-no"> </span>
|
|
1899
|
+
<span class="cline-any cline-no"> </span>
|
|
1900
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1901
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1902
|
+
<span class="cline-any cline-no"> </span>
|
|
1903
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1254
1904
|
<span class="cline-any cline-neutral"> </span>
|
|
1905
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1906
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1907
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1908
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1909
|
+
<span class="cline-any cline-no"> </span>
|
|
1255
1910
|
<span class="cline-any cline-no"> </span>
|
|
1256
1911
|
<span class="cline-any cline-no"> </span>
|
|
1257
1912
|
<span class="cline-any cline-no"> </span>
|
|
1913
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1914
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1915
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1258
1916
|
<span class="cline-any cline-no"> </span>
|
|
1259
1917
|
<span class="cline-any cline-neutral"> </span>
|
|
1260
1918
|
<span class="cline-any cline-neutral"> </span>
|
|
1261
1919
|
<span class="cline-any cline-neutral"> </span>
|
|
1920
|
+
<span class="cline-any cline-no"> </span>
|
|
1262
1921
|
<span class="cline-any cline-neutral"> </span>
|
|
1263
1922
|
<span class="cline-any cline-neutral"> </span>
|
|
1264
1923
|
<span class="cline-any cline-neutral"> </span>
|
|
1924
|
+
<span class="cline-any cline-no"> </span>
|
|
1925
|
+
<span class="cline-any cline-no"> </span>
|
|
1265
1926
|
<span class="cline-any cline-neutral"> </span>
|
|
1927
|
+
<span class="cline-any cline-no"> </span>
|
|
1266
1928
|
<span class="cline-any cline-neutral"> </span>
|
|
1267
1929
|
<span class="cline-any cline-neutral"> </span>
|
|
1268
1930
|
<span class="cline-any cline-neutral"> </span>
|
|
1931
|
+
<span class="cline-any cline-no"> </span>
|
|
1932
|
+
<span class="cline-any cline-no"> </span>
|
|
1933
|
+
<span class="cline-any cline-no"> </span>
|
|
1934
|
+
<span class="cline-any cline-no"> </span>
|
|
1269
1935
|
<span class="cline-any cline-neutral"> </span>
|
|
1270
1936
|
<span class="cline-any cline-neutral"> </span>
|
|
1271
1937
|
<span class="cline-any cline-no"> </span>
|
|
1272
1938
|
<span class="cline-any cline-no"> </span>
|
|
1939
|
+
<span class="cline-any cline-no"> </span>
|
|
1273
1940
|
<span class="cline-any cline-neutral"> </span>
|
|
1941
|
+
<span class="cline-any cline-no"> </span>
|
|
1274
1942
|
<span class="cline-any cline-neutral"> </span>
|
|
1275
1943
|
<span class="cline-any cline-neutral"> </span>
|
|
1276
1944
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1278,16 +1946,69 @@
|
|
|
1278
1946
|
<span class="cline-any cline-neutral"> </span>
|
|
1279
1947
|
<span class="cline-any cline-neutral"> </span>
|
|
1280
1948
|
<span class="cline-any cline-neutral"> </span>
|
|
1949
|
+
<span class="cline-any cline-no"> </span>
|
|
1950
|
+
<span class="cline-any cline-no"> </span>
|
|
1951
|
+
<span class="cline-any cline-no"> </span>
|
|
1952
|
+
<span class="cline-any cline-no"> </span>
|
|
1281
1953
|
<span class="cline-any cline-neutral"> </span>
|
|
1282
1954
|
<span class="cline-any cline-no"> </span>
|
|
1955
|
+
<span class="cline-any cline-no"> </span>
|
|
1956
|
+
<span class="cline-any cline-no"> </span>
|
|
1957
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1958
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1959
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1960
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1961
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1962
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1963
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1964
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1965
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1966
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1967
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1968
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1969
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1970
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1971
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1972
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1973
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1974
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1975
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1976
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1977
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1978
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1979
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1283
1980
|
<span class="cline-any cline-neutral"> </span>
|
|
1284
1981
|
<span class="cline-any cline-neutral"> </span>
|
|
1982
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1983
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1984
|
+
<span class="cline-any cline-no"> </span>
|
|
1285
1985
|
<span class="cline-any cline-no"> </span>
|
|
1986
|
+
<span class="cline-any cline-no"> </span>
|
|
1987
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1988
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1286
1989
|
<span class="cline-any cline-neutral"> </span>
|
|
1287
1990
|
<span class="cline-any cline-neutral"> </span>
|
|
1991
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1992
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1993
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1994
|
+
<span class="cline-any cline-no"> </span>
|
|
1995
|
+
<span class="cline-any cline-no"> </span>
|
|
1996
|
+
<span class="cline-any cline-no"> </span>
|
|
1288
1997
|
<span class="cline-any cline-no"> </span>
|
|
1289
1998
|
<span class="cline-any cline-no"> </span>
|
|
1290
1999
|
<span class="cline-any cline-neutral"> </span>
|
|
2000
|
+
<span class="cline-any cline-no"> </span>
|
|
2001
|
+
<span class="cline-any cline-no"> </span>
|
|
2002
|
+
<span class="cline-any cline-no"> </span>
|
|
2003
|
+
<span class="cline-any cline-no"> </span>
|
|
2004
|
+
<span class="cline-any cline-no"> </span>
|
|
2005
|
+
<span class="cline-any cline-no"> </span>
|
|
2006
|
+
<span class="cline-any cline-no"> </span>
|
|
2007
|
+
<span class="cline-any cline-no"> </span>
|
|
2008
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2009
|
+
<span class="cline-any cline-no"> </span>
|
|
2010
|
+
<span class="cline-any cline-no"> </span>
|
|
2011
|
+
<span class="cline-any cline-no"> </span>
|
|
1291
2012
|
<span class="cline-any cline-neutral"> </span>
|
|
1292
2013
|
<span class="cline-any cline-no"> </span>
|
|
1293
2014
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1295,14 +2016,26 @@
|
|
|
1295
2016
|
<span class="cline-any cline-no"> </span>
|
|
1296
2017
|
<span class="cline-any cline-neutral"> </span>
|
|
1297
2018
|
<span class="cline-any cline-no"> </span>
|
|
2019
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2020
|
+
<span class="cline-any cline-no"> </span>
|
|
2021
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1298
2022
|
<span class="cline-any cline-no"> </span>
|
|
1299
2023
|
<span class="cline-any cline-neutral"> </span>
|
|
1300
2024
|
<span class="cline-any cline-neutral"> </span>
|
|
1301
2025
|
<span class="cline-any cline-neutral"> </span>
|
|
2026
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2027
|
+
<span class="cline-any cline-no"> </span>
|
|
1302
2028
|
<span class="cline-any cline-no"> </span>
|
|
1303
2029
|
<span class="cline-any cline-neutral"> </span>
|
|
2030
|
+
<span class="cline-any cline-no"> </span>
|
|
1304
2031
|
<span class="cline-any cline-neutral"> </span>
|
|
2032
|
+
<span class="cline-any cline-no"> </span>
|
|
2033
|
+
<span class="cline-any cline-no"> </span>
|
|
1305
2034
|
<span class="cline-any cline-neutral"> </span>
|
|
2035
|
+
<span class="cline-any cline-no"> </span>
|
|
2036
|
+
<span class="cline-any cline-no"> </span>
|
|
2037
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2038
|
+
<span class="cline-any cline-no"> </span>
|
|
1306
2039
|
<span class="cline-any cline-neutral"> </span>
|
|
1307
2040
|
<span class="cline-any cline-neutral"> </span>
|
|
1308
2041
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1311,6 +2044,16 @@
|
|
|
1311
2044
|
<span class="cline-any cline-neutral"> </span>
|
|
1312
2045
|
<span class="cline-any cline-neutral"> </span>
|
|
1313
2046
|
<span class="cline-any cline-neutral"> </span>
|
|
2047
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2048
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2049
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2050
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2051
|
+
<span class="cline-any cline-no"> </span>
|
|
2052
|
+
<span class="cline-any cline-no"> </span>
|
|
2053
|
+
<span class="cline-any cline-no"> </span>
|
|
2054
|
+
<span class="cline-any cline-no"> </span>
|
|
2055
|
+
<span class="cline-any cline-no"> </span>
|
|
2056
|
+
<span class="cline-any cline-no"> </span>
|
|
1314
2057
|
<span class="cline-any cline-no"> </span>
|
|
1315
2058
|
<span class="cline-any cline-no"> </span>
|
|
1316
2059
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1319,25 +2062,28 @@
|
|
|
1319
2062
|
<span class="cline-any cline-no"> </span>
|
|
1320
2063
|
<span class="cline-any cline-no"> </span>
|
|
1321
2064
|
<span class="cline-any cline-no"> </span>
|
|
1322
|
-
<span class="cline-any cline-
|
|
1323
|
-
<span class="cline-any cline-
|
|
1324
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2065
|
+
<span class="cline-any cline-no"> </span>
|
|
2066
|
+
<span class="cline-any cline-no"> </span>
|
|
1325
2067
|
<span class="cline-any cline-neutral"> </span>
|
|
1326
2068
|
<span class="cline-any cline-no"> </span>
|
|
1327
2069
|
<span class="cline-any cline-neutral"> </span>
|
|
2070
|
+
<span class="cline-any cline-no"> </span>
|
|
1328
2071
|
<span class="cline-any cline-neutral"> </span>
|
|
1329
2072
|
<span class="cline-any cline-no"> </span>
|
|
1330
2073
|
<span class="cline-any cline-neutral"> </span>
|
|
1331
2074
|
<span class="cline-any cline-neutral"> </span>
|
|
1332
2075
|
<span class="cline-any cline-neutral"> </span>
|
|
1333
|
-
<span class="cline-any cline-
|
|
2076
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1334
2077
|
<span class="cline-any cline-no"> </span>
|
|
1335
2078
|
<span class="cline-any cline-no"> </span>
|
|
1336
2079
|
<span class="cline-any cline-no"> </span>
|
|
1337
2080
|
<span class="cline-any cline-neutral"> </span>
|
|
1338
2081
|
<span class="cline-any cline-no"> </span>
|
|
1339
2082
|
<span class="cline-any cline-neutral"> </span>
|
|
2083
|
+
<span class="cline-any cline-no"> </span>
|
|
2084
|
+
<span class="cline-any cline-no"> </span>
|
|
1340
2085
|
<span class="cline-any cline-neutral"> </span>
|
|
2086
|
+
<span class="cline-any cline-no"> </span>
|
|
1341
2087
|
<span class="cline-any cline-neutral"> </span>
|
|
1342
2088
|
<span class="cline-any cline-neutral"> </span>
|
|
1343
2089
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1345,60 +2091,47 @@
|
|
|
1345
2091
|
<span class="cline-any cline-neutral"> </span>
|
|
1346
2092
|
<span class="cline-any cline-neutral"> </span>
|
|
1347
2093
|
<span class="cline-any cline-neutral"> </span>
|
|
1348
|
-
<span class="cline-any cline-no"> </span>
|
|
1349
2094
|
<span class="cline-any cline-neutral"> </span>
|
|
1350
2095
|
<span class="cline-any cline-neutral"> </span>
|
|
1351
2096
|
<span class="cline-any cline-neutral"> </span>
|
|
1352
|
-
<span class="cline-any cline-no"> </span>
|
|
1353
|
-
<span class="cline-any cline-no"> </span>
|
|
1354
2097
|
<span class="cline-any cline-neutral"> </span>
|
|
1355
|
-
<span class="cline-any cline-no"> </span>
|
|
1356
2098
|
<span class="cline-any cline-neutral"> </span>
|
|
1357
2099
|
<span class="cline-any cline-neutral"> </span>
|
|
1358
2100
|
<span class="cline-any cline-neutral"> </span>
|
|
1359
2101
|
<span class="cline-any cline-no"> </span>
|
|
1360
|
-
<span class="cline-any cline-no"> </span>
|
|
1361
2102
|
<span class="cline-any cline-neutral"> </span>
|
|
1362
|
-
<span class="cline-any cline-no"> </span>
|
|
1363
2103
|
<span class="cline-any cline-neutral"> </span>
|
|
1364
2104
|
<span class="cline-any cline-neutral"> </span>
|
|
1365
2105
|
<span class="cline-any cline-neutral"> </span>
|
|
1366
2106
|
<span class="cline-any cline-neutral"> </span>
|
|
1367
2107
|
<span class="cline-any cline-neutral"> </span>
|
|
2108
|
+
<span class="cline-any cline-no"> </span>
|
|
1368
2109
|
<span class="cline-any cline-neutral"> </span>
|
|
1369
2110
|
<span class="cline-any cline-neutral"> </span>
|
|
1370
2111
|
<span class="cline-any cline-neutral"> </span>
|
|
1371
2112
|
<span class="cline-any cline-neutral"> </span>
|
|
1372
2113
|
<span class="cline-any cline-neutral"> </span>
|
|
1373
|
-
<span class="cline-any cline-no"> </span>
|
|
1374
|
-
<span class="cline-any cline-no"> </span>
|
|
1375
2114
|
<span class="cline-any cline-neutral"> </span>
|
|
1376
2115
|
<span class="cline-any cline-no"> </span>
|
|
1377
|
-
<span class="cline-any cline-no"> </span>
|
|
1378
2116
|
<span class="cline-any cline-neutral"> </span>
|
|
1379
2117
|
<span class="cline-any cline-neutral"> </span>
|
|
1380
|
-
<span class="cline-any cline-no"> </span>
|
|
1381
|
-
<span class="cline-any cline-no"> </span>
|
|
1382
2118
|
<span class="cline-any cline-neutral"> </span>
|
|
1383
2119
|
<span class="cline-any cline-neutral"> </span>
|
|
1384
2120
|
<span class="cline-any cline-neutral"> </span>
|
|
1385
2121
|
<span class="cline-any cline-neutral"> </span>
|
|
1386
2122
|
<span class="cline-any cline-neutral"> </span>
|
|
1387
2123
|
<span class="cline-any cline-neutral"> </span>
|
|
1388
|
-
<span class="cline-any cline-
|
|
1389
|
-
<span class="cline-any cline-
|
|
2124
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2125
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1390
2126
|
<span class="cline-any cline-no"> </span>
|
|
1391
2127
|
<span class="cline-any cline-no"> </span>
|
|
1392
2128
|
<span class="cline-any cline-no"> </span>
|
|
1393
2129
|
<span class="cline-any cline-neutral"> </span>
|
|
1394
|
-
<span class="cline-any cline-no"> </span>
|
|
1395
|
-
<span class="cline-any cline-no"> </span>
|
|
1396
2130
|
<span class="cline-any cline-neutral"> </span>
|
|
1397
|
-
<span class="cline-any cline-no"> </span>
|
|
1398
|
-
<span class="cline-any cline-no"> </span>
|
|
1399
2131
|
<span class="cline-any cline-neutral"> </span>
|
|
1400
2132
|
<span class="cline-any cline-neutral"> </span>
|
|
1401
|
-
<span class="cline-any cline-
|
|
2133
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2134
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1402
2135
|
<span class="cline-any cline-neutral"> </span>
|
|
1403
2136
|
<span class="cline-any cline-neutral"> </span>
|
|
1404
2137
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1412,61 +2145,45 @@
|
|
|
1412
2145
|
<span class="cline-any cline-neutral"> </span>
|
|
1413
2146
|
<span class="cline-any cline-neutral"> </span>
|
|
1414
2147
|
<span class="cline-any cline-neutral"> </span>
|
|
1415
|
-
<span class="cline-any cline-no"> </span>
|
|
1416
2148
|
<span class="cline-any cline-neutral"> </span>
|
|
1417
2149
|
<span class="cline-any cline-neutral"> </span>
|
|
1418
2150
|
<span class="cline-any cline-neutral"> </span>
|
|
1419
2151
|
<span class="cline-any cline-neutral"> </span>
|
|
1420
2152
|
<span class="cline-any cline-neutral"> </span>
|
|
1421
2153
|
<span class="cline-any cline-neutral"> </span>
|
|
1422
|
-
<span class="cline-any cline-no"> </span>
|
|
1423
2154
|
<span class="cline-any cline-neutral"> </span>
|
|
1424
2155
|
<span class="cline-any cline-neutral"> </span>
|
|
1425
2156
|
<span class="cline-any cline-neutral"> </span>
|
|
1426
|
-
<span class="cline-any cline-no"> </span>
|
|
1427
2157
|
<span class="cline-any cline-neutral"> </span>
|
|
1428
2158
|
<span class="cline-any cline-neutral"> </span>
|
|
1429
2159
|
<span class="cline-any cline-neutral"> </span>
|
|
1430
|
-
<span class="cline-any cline-no"> </span>
|
|
1431
|
-
<span class="cline-any cline-no"> </span>
|
|
1432
|
-
<span class="cline-any cline-no"> </span>
|
|
1433
|
-
<span class="cline-any cline-no"> </span>
|
|
1434
2160
|
<span class="cline-any cline-neutral"> </span>
|
|
1435
|
-
<span class="cline-any cline-no"> </span>
|
|
1436
|
-
<span class="cline-any cline-no"> </span>
|
|
1437
2161
|
<span class="cline-any cline-neutral"> </span>
|
|
1438
|
-
<span class="cline-any cline-no"> </span>
|
|
1439
2162
|
<span class="cline-any cline-neutral"> </span>
|
|
1440
|
-
<span class="cline-any cline-
|
|
2163
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1441
2164
|
<span class="cline-any cline-neutral"> </span>
|
|
1442
2165
|
<span class="cline-any cline-no"> </span>
|
|
1443
2166
|
<span class="cline-any cline-no"> </span>
|
|
1444
|
-
<span class="cline-any cline-no"> </span>
|
|
1445
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1446
2167
|
<span class="cline-any cline-neutral"> </span>
|
|
1447
|
-
<span class="cline-any cline-no"> </span>
|
|
1448
2168
|
<span class="cline-any cline-neutral"> </span>
|
|
1449
2169
|
<span class="cline-any cline-neutral"> </span>
|
|
1450
2170
|
<span class="cline-any cline-neutral"> </span>
|
|
1451
2171
|
<span class="cline-any cline-no"> </span>
|
|
2172
|
+
<span class="cline-any cline-no"> </span>
|
|
2173
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1452
2174
|
<span class="cline-any cline-neutral"> </span>
|
|
1453
2175
|
<span class="cline-any cline-neutral"> </span>
|
|
1454
2176
|
<span class="cline-any cline-neutral"> </span>
|
|
1455
|
-
<span class="cline-any cline-no"> </span>
|
|
1456
2177
|
<span class="cline-any cline-neutral"> </span>
|
|
1457
2178
|
<span class="cline-any cline-neutral"> </span>
|
|
1458
2179
|
<span class="cline-any cline-neutral"> </span>
|
|
1459
2180
|
<span class="cline-any cline-no"> </span>
|
|
1460
2181
|
<span class="cline-any cline-no"> </span>
|
|
1461
|
-
<span class="cline-any cline-no"> </span>
|
|
1462
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1463
2182
|
<span class="cline-any cline-neutral"> </span>
|
|
1464
2183
|
<span class="cline-any cline-no"> </span>
|
|
1465
2184
|
<span class="cline-any cline-no"> </span>
|
|
1466
2185
|
<span class="cline-any cline-neutral"> </span>
|
|
1467
2186
|
<span class="cline-any cline-neutral"> </span>
|
|
1468
|
-
<span class="cline-any cline-no"> </span>
|
|
1469
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1470
2187
|
<span class="cline-any cline-neutral"> </span>
|
|
1471
2188
|
<span class="cline-any cline-neutral"> </span>
|
|
1472
2189
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1475,18 +2192,9 @@
|
|
|
1475
2192
|
<span class="cline-any cline-no"> </span>
|
|
1476
2193
|
<span class="cline-any cline-no"> </span>
|
|
1477
2194
|
<span class="cline-any cline-no"> </span>
|
|
1478
|
-
<span class="cline-any cline-no"> </span>
|
|
1479
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1480
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1481
2195
|
<span class="cline-any cline-neutral"> </span>
|
|
1482
2196
|
<span class="cline-any cline-no"> </span>
|
|
1483
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1484
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1485
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1486
2197
|
<span class="cline-any cline-no"> </span>
|
|
1487
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1488
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1489
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1490
2198
|
<span class="cline-any cline-no"> </span>
|
|
1491
2199
|
<span class="cline-any cline-no"> </span>
|
|
1492
2200
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1497,17 +2205,13 @@
|
|
|
1497
2205
|
<span class="cline-any cline-neutral"> </span>
|
|
1498
2206
|
<span class="cline-any cline-no"> </span>
|
|
1499
2207
|
<span class="cline-any cline-no"> </span>
|
|
1500
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1501
|
-
<span class="cline-any cline-no"> </span>
|
|
1502
2208
|
<span class="cline-any cline-no"> </span>
|
|
1503
2209
|
<span class="cline-any cline-neutral"> </span>
|
|
1504
|
-
<span class="cline-any cline-
|
|
1505
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1506
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1507
|
-
<span class="cline-any cline-neutral"> </span>
|
|
2210
|
+
<span class="cline-any cline-no"> </span>
|
|
1508
2211
|
<span class="cline-any cline-no"> </span>
|
|
1509
2212
|
<span class="cline-any cline-no"> </span>
|
|
1510
2213
|
<span class="cline-any cline-neutral"> </span>
|
|
2214
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1511
2215
|
<span class="cline-any cline-no"> </span>
|
|
1512
2216
|
<span class="cline-any cline-no"> </span>
|
|
1513
2217
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1536,8 +2240,6 @@
|
|
|
1536
2240
|
<span class="cline-any cline-no"> </span>
|
|
1537
2241
|
<span class="cline-any cline-no"> </span>
|
|
1538
2242
|
<span class="cline-any cline-no"> </span>
|
|
1539
|
-
<span class="cline-any cline-no"> </span>
|
|
1540
|
-
<span class="cline-any cline-no"> </span>
|
|
1541
2243
|
<span class="cline-any cline-neutral"> </span>
|
|
1542
2244
|
<span class="cline-any cline-no"> </span>
|
|
1543
2245
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1562,6 +2264,9 @@
|
|
|
1562
2264
|
<span class="cline-any cline-neutral"> </span>
|
|
1563
2265
|
<span class="cline-any cline-neutral"> </span>
|
|
1564
2266
|
<span class="cline-any cline-neutral"> </span>
|
|
2267
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2268
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2269
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1565
2270
|
<span class="cline-any cline-no"> </span>
|
|
1566
2271
|
<span class="cline-any cline-no"> </span>
|
|
1567
2272
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1574,12 +2279,16 @@
|
|
|
1574
2279
|
<span class="cline-any cline-neutral"> </span>
|
|
1575
2280
|
<span class="cline-any cline-neutral"> </span>
|
|
1576
2281
|
<span class="cline-any cline-neutral"> </span>
|
|
1577
|
-
<span class="cline-any cline-
|
|
2282
|
+
<span class="cline-any cline-no"> </span>
|
|
2283
|
+
<span class="cline-any cline-no"> </span>
|
|
2284
|
+
<span class="cline-any cline-no"> </span>
|
|
1578
2285
|
<span class="cline-any cline-no"> </span>
|
|
1579
2286
|
<span class="cline-any cline-no"> </span>
|
|
1580
2287
|
<span class="cline-any cline-neutral"> </span>
|
|
1581
2288
|
<span class="cline-any cline-no"> </span>
|
|
1582
2289
|
<span class="cline-any cline-no"> </span>
|
|
2290
|
+
<span class="cline-any cline-no"> </span>
|
|
2291
|
+
<span class="cline-any cline-no"> </span>
|
|
1583
2292
|
<span class="cline-any cline-neutral"> </span>
|
|
1584
2293
|
<span class="cline-any cline-neutral"> </span>
|
|
1585
2294
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1609,6 +2318,8 @@
|
|
|
1609
2318
|
<span class="cline-any cline-neutral"> </span>
|
|
1610
2319
|
<span class="cline-any cline-neutral"> </span>
|
|
1611
2320
|
<span class="cline-any cline-no"> </span>
|
|
2321
|
+
<span class="cline-any cline-no"> </span>
|
|
2322
|
+
<span class="cline-any cline-no"> </span>
|
|
1612
2323
|
<span class="cline-any cline-neutral"> </span>
|
|
1613
2324
|
<span class="cline-any cline-no"> </span>
|
|
1614
2325
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1646,8 +2357,16 @@
|
|
|
1646
2357
|
<span class="cline-any cline-no"> </span>
|
|
1647
2358
|
<span class="cline-any cline-no"> </span>
|
|
1648
2359
|
<span class="cline-any cline-neutral"> </span>
|
|
2360
|
+
<span class="cline-any cline-no"> </span>
|
|
2361
|
+
<span class="cline-any cline-no"> </span>
|
|
2362
|
+
<span class="cline-any cline-no"> </span>
|
|
2363
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2364
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2365
|
+
<span class="cline-any cline-no"> </span>
|
|
1649
2366
|
<span class="cline-any cline-neutral"> </span>
|
|
1650
2367
|
<span class="cline-any cline-no"> </span>
|
|
2368
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2369
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1651
2370
|
<span class="cline-any cline-no"> </span>
|
|
1652
2371
|
<span class="cline-any cline-no"> </span>
|
|
1653
2372
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1656,11 +2375,17 @@
|
|
|
1656
2375
|
<span class="cline-any cline-neutral"> </span>
|
|
1657
2376
|
<span class="cline-any cline-neutral"> </span>
|
|
1658
2377
|
<span class="cline-any cline-no"> </span>
|
|
2378
|
+
<span class="cline-any cline-no"> </span>
|
|
2379
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1659
2380
|
<span class="cline-any cline-neutral"> </span>
|
|
1660
2381
|
<span class="cline-any cline-no"> </span>
|
|
2382
|
+
<span class="cline-any cline-no"> </span>
|
|
2383
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1661
2384
|
<span class="cline-any cline-neutral"> </span>
|
|
1662
2385
|
<span class="cline-any cline-no"> </span>
|
|
1663
2386
|
<span class="cline-any cline-neutral"> </span>
|
|
2387
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2388
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1664
2389
|
<span class="cline-any cline-no"> </span>
|
|
1665
2390
|
<span class="cline-any cline-no"> </span>
|
|
1666
2391
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1703,9 +2428,27 @@
|
|
|
1703
2428
|
<span class="cline-any cline-no"> </span>
|
|
1704
2429
|
<span class="cline-any cline-no"> </span>
|
|
1705
2430
|
<span class="cline-any cline-no"> </span>
|
|
2431
|
+
<span class="cline-any cline-no"> </span>
|
|
2432
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2433
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2434
|
+
<span class="cline-any cline-no"> </span>
|
|
2435
|
+
<span class="cline-any cline-no"> </span>
|
|
2436
|
+
<span class="cline-any cline-no"> </span>
|
|
2437
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2438
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1706
2439
|
<span class="cline-any cline-neutral"> </span>
|
|
2440
|
+
<span class="cline-any cline-no"> </span>
|
|
2441
|
+
<span class="cline-any cline-no"> </span>
|
|
2442
|
+
<span class="cline-any cline-no"> </span>
|
|
2443
|
+
<span class="cline-any cline-no"> </span>
|
|
2444
|
+
<span class="cline-any cline-no"> </span>
|
|
2445
|
+
<span class="cline-any cline-no"> </span>
|
|
2446
|
+
<span class="cline-any cline-no"> </span>
|
|
2447
|
+
<span class="cline-any cline-no"> </span>
|
|
1707
2448
|
<span class="cline-any cline-neutral"> </span>
|
|
1708
2449
|
<span class="cline-any cline-no"> </span>
|
|
2450
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2451
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1709
2452
|
<span class="cline-any cline-no"> </span>
|
|
1710
2453
|
<span class="cline-any cline-no"> </span>
|
|
1711
2454
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1757,6 +2500,11 @@
|
|
|
1757
2500
|
<span class="cline-any cline-neutral"> </span>
|
|
1758
2501
|
<span class="cline-any cline-neutral"> </span>
|
|
1759
2502
|
<span class="cline-any cline-neutral"> </span>
|
|
2503
|
+
<span class="cline-any cline-no"> </span>
|
|
2504
|
+
<span class="cline-any cline-no"> </span>
|
|
2505
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2506
|
+
<span class="cline-any cline-neutral"> </span>
|
|
2507
|
+
<span class="cline-any cline-neutral"> </span>
|
|
1760
2508
|
<span class="cline-any cline-neutral"> </span>
|
|
1761
2509
|
<span class="cline-any cline-neutral"> </span>
|
|
1762
2510
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -1797,7 +2545,9 @@
|
|
|
1797
2545
|
<span class="cline-any cline-neutral"> </span>
|
|
1798
2546
|
<span class="cline-any cline-neutral"> </span>
|
|
1799
2547
|
<span class="cline-any cline-neutral"> </span>
|
|
1800
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import
|
|
2548
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" >import ConditionsManager from '../modules/conditionsManager.js'</span>
|
|
2549
|
+
<span class="cstat-no" title="statement not covered" >import FeatureFlags from '../modules/featureFlags.js'</span>
|
|
2550
|
+
import type Message from './messages.gen.js'
|
|
1801
2551
|
<span class="cstat-no" title="statement not covered" >import {</span>
|
|
1802
2552
|
Timestamp,
|
|
1803
2553
|
Metadata,
|
|
@@ -1820,14 +2570,13 @@
|
|
|
1820
2570
|
<span class="cstat-no" title="statement not covered" >import Observer from './observer/top_observer.js'</span>
|
|
1821
2571
|
<span class="cstat-no" title="statement not covered" >import Sanitizer from './sanitizer.js'</span>
|
|
1822
2572
|
<span class="cstat-no" title="statement not covered" >import Ticker from './ticker.js'</span>
|
|
1823
|
-
<span class="cstat-no" title="statement not covered" >import Logger, { LogLevel } from './logger.js'</span>
|
|
2573
|
+
<span class="cstat-no" title="statement not covered" >import Logger, { LogLevel, ILogLevel } from './logger.js'</span>
|
|
1824
2574
|
<span class="cstat-no" title="statement not covered" >import Session from './session.js'</span>
|
|
1825
2575
|
<span class="cstat-no" title="statement not covered" >import { gzip } from 'fflate'</span>
|
|
1826
2576
|
<span class="cstat-no" title="statement not covered" >import { deviceMemory, jsHeapSizeLimit } from '../modules/performance.js'</span>
|
|
1827
2577
|
<span class="cstat-no" title="statement not covered" >import AttributeSender from '../modules/attributeSender.js'</span>
|
|
1828
2578
|
import type { Options as ObserverOptions } from './observer/top_observer.js'
|
|
1829
2579
|
import type { Options as SanitizerOptions } from './sanitizer.js'
|
|
1830
|
-
import type { Options as LoggerOptions } from './logger.js'
|
|
1831
2580
|
import type { Options as SessOptions } from './session.js'
|
|
1832
2581
|
import type { Options as NetworkOptions } from '../modules/network.js'
|
|
1833
2582
|
<span class="cstat-no" title="statement not covered" >import CanvasRecorder from './canvas.js'</span>
|
|
@@ -1860,6 +2609,7 @@ interface OnStartInfo {
|
|
|
1860
2609
|
|
|
1861
2610
|
const CANCELED = <span class="cstat-no" title="statement not covered" >'canceled' as const</span>
|
|
1862
2611
|
const uxtStorageKey = <span class="cstat-no" title="statement not covered" >'or_uxt_active'</span>
|
|
2612
|
+
const bufferStorageKey = <span class="cstat-no" title="statement not covered" >'or_buffer_1'</span>
|
|
1863
2613
|
const START_ERROR = <span class="cstat-no" title="statement not covered" >':(' as const</span>
|
|
1864
2614
|
type SuccessfulStart = OnStartInfo & {
|
|
1865
2615
|
success: true
|
|
@@ -1897,6 +2647,7 @@ type CommitCallback = (messages: Array<Message>) => void
|
|
|
1897
2647
|
<span class="cstat-no" title="statement not covered" > NotActive,</span>
|
|
1898
2648
|
<span class="cstat-no" title="statement not covered" > Starting,</span>
|
|
1899
2649
|
<span class="cstat-no" title="statement not covered" > Active,</span>
|
|
2650
|
+
<span class="cstat-no" title="statement not covered" > ColdStart,</span>
|
|
1900
2651
|
}
|
|
1901
2652
|
|
|
1902
2653
|
type AppOptions = {
|
|
@@ -1909,18 +2660,16 @@ type AppOptions = {
|
|
|
1909
2660
|
local_uuid_key: string
|
|
1910
2661
|
ingestPoint: string
|
|
1911
2662
|
resourceBaseHref: string | null // resourceHref?
|
|
1912
|
-
//resourceURLRewriter: (url: string) => string | boolean,
|
|
1913
|
-
verbose: boolean
|
|
1914
2663
|
__is_snippet: boolean
|
|
1915
2664
|
__debug_report_edp: string | null
|
|
1916
|
-
__debug__?:
|
|
2665
|
+
__debug__?: ILogLevel
|
|
1917
2666
|
localStorage: Storage | null
|
|
1918
2667
|
sessionStorage: Storage | null
|
|
1919
2668
|
forceSingleTab?: boolean
|
|
1920
2669
|
disableStringDict?: boolean
|
|
1921
2670
|
assistSocketHost?: string
|
|
1922
2671
|
|
|
1923
|
-
|
|
2672
|
+
/** @deprecated */
|
|
1924
2673
|
onStart?: StartCallback
|
|
1925
2674
|
network?: NetworkOptions
|
|
1926
2675
|
} & WebworkerOptions &
|
|
@@ -1950,8 +2699,14 @@ function <span class="fstat-no" title="function not covered" >getTimezone(</span
|
|
|
1950
2699
|
readonly localStorage: Storage
|
|
1951
2700
|
readonly sessionStorage: Storage
|
|
1952
2701
|
private readonly <span class="cstat-no" title="statement not covered" >messages: Array<Message> = []</span>
|
|
2702
|
+
/**
|
|
2703
|
+
* we need 2 buffers, so we don't lose anything
|
|
2704
|
+
* @read coldStart implementation
|
|
2705
|
+
* */
|
|
2706
|
+
private <span class="cstat-no" title="statement not covered" >bufferedMessages1: Array<Message> = []</span>
|
|
2707
|
+
private readonly <span class="cstat-no" title="statement not covered" >bufferedMessages2: Array<Message> = []</span>
|
|
1953
2708
|
/* private */
|
|
1954
|
-
readonly observer: Observer // non-
|
|
2709
|
+
readonly observer: Observer // non-private for attachContextCallback
|
|
1955
2710
|
private readonly <span class="cstat-no" title="statement not covered" >startCallbacks: Array<StartCallback> = []</span>
|
|
1956
2711
|
private readonly <span class="cstat-no" title="statement not covered" >stopCallbacks: Array<() => any> = []</span>
|
|
1957
2712
|
private readonly <span class="cstat-no" title="statement not covered" >commitCallbacks: Array<CommitCallback> = []</span>
|
|
@@ -1969,12 +2724,16 @@ function <span class="fstat-no" title="function not covered" >getTimezone(</span
|
|
|
1969
2724
|
public attributeSender: AttributeSender
|
|
1970
2725
|
private <span class="cstat-no" title="statement not covered" >canvasRecorder: CanvasRecorder | null = null</span>
|
|
1971
2726
|
private uxtManager: UserTestManager
|
|
2727
|
+
private <span class="cstat-no" title="statement not covered" >conditionsManager: ConditionsManager | null = null</span>
|
|
2728
|
+
public featureFlags: FeatureFlags
|
|
1972
2729
|
private tagWatcher: TagWatcher
|
|
1973
2730
|
|
|
1974
|
-
<span class="fstat-no" title="function not covered" > constructor(
|
|
1975
|
-
|
|
1976
|
-
|
|
1977
|
-
|
|
2731
|
+
<span class="fstat-no" title="function not covered" > constructor(</span>
|
|
2732
|
+
projectKey: string,
|
|
2733
|
+
sessionToken: string | undefined,
|
|
2734
|
+
options: Partial<Options>,
|
|
2735
|
+
private readonly <span class="cstat-no" title="statement not covered" >signalError: (error: string, apis: string[]) => void,</span>
|
|
2736
|
+
) {
|
|
1978
2737
|
<span class="cstat-no" title="statement not covered" > this.contextId = Math.random().toString(36).slice(2)</span>
|
|
1979
2738
|
<span class="cstat-no" title="statement not covered" > this.projectKey = projectKey</span>
|
|
1980
2739
|
<span class="cstat-no" title="statement not covered" > this.networkOptions = options.network</span>
|
|
@@ -1989,9 +2748,9 @@ function <span class="fstat-no" title="function not covered" >getTimezone(</span
|
|
|
1989
2748
|
local_uuid_key: '__openreplay_uuid',
|
|
1990
2749
|
ingestPoint: DEFAULT_INGEST_POINT,
|
|
1991
2750
|
resourceBaseHref: null,
|
|
1992
|
-
verbose: false,
|
|
1993
2751
|
__is_snippet: false,
|
|
1994
2752
|
__debug_report_edp: null,
|
|
2753
|
+
__debug__: LogLevel.Silent,
|
|
1995
2754
|
localStorage: null,
|
|
1996
2755
|
sessionStorage: null,
|
|
1997
2756
|
disableStringDict: false,
|
|
@@ -2015,10 +2774,12 @@ function <span class="fstat-no" title="function not covered" >getTimezone(</span
|
|
|
2015
2774
|
<span class="cstat-no" title="statement not covered" > this.ticker = new Ticker(this)</span>
|
|
2016
2775
|
<span class="cstat-no" title="statement not covered" > this.ticker.attach(<span class="fstat-no" title="function not covered" >() =</span>> <span class="cstat-no" title="statement not covered" >this.commit())</span></span>
|
|
2017
2776
|
<span class="cstat-no" title="statement not covered" > this.debug = new Logger(this.options.__debug__)</span>
|
|
2018
|
-
<span class="cstat-no" title="statement not covered" > this.notify = new Logger(this.options.verbose ? LogLevel.Warnings : LogLevel.Silent)</span>
|
|
2019
2777
|
<span class="cstat-no" title="statement not covered" > this.session = new Session(this, this.options)</span>
|
|
2020
2778
|
<span class="cstat-no" title="statement not covered" > this.attributeSender = new AttributeSender(this, Boolean(this.options.disableStringDict))</span>
|
|
2021
|
-
<span class="cstat-no" title="statement not covered" > this.
|
|
2779
|
+
<span class="cstat-no" title="statement not covered" > this.featureFlags = new FeatureFlags(this)</span>
|
|
2780
|
+
<span class="cstat-no" title="statement not covered" > this.tagWatcher = new TagWatcher(this.sessionStorage, this.debug.error, <span class="fstat-no" title="function not covered" >(t</span>ag) =></span>
|
|
2781
|
+
<span class="cstat-no" title="statement not covered" > console.log(`Tag ${tag} has been rendered`),</span>
|
|
2782
|
+
)
|
|
2022
2783
|
<span class="cstat-no" title="statement not covered" > this.session.attachUpdateCallback(<span class="fstat-no" title="function not covered" >({</span> userID, metadata }) => {</span>
|
|
2023
2784
|
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (userID != null) {</span>
|
|
2024
2785
|
// TODO: nullable userID
|
|
@@ -2051,7 +2812,7 @@ function <span class="fstat-no" title="function not covered" >getTimezone(</span
|
|
|
2051
2812
|
<span class="cstat-no" title="statement not covered" > this.stop(false)</span>
|
|
2052
2813
|
<span class="cstat-no" title="statement not covered" > this.debug.error('worker_failed', data.reason)</span>
|
|
2053
2814
|
<span class="cstat-no" title="statement not covered" > this._debug('worker_failed', data.reason)</span>
|
|
2054
|
-
} else <span class="cstat-no" title="statement not covered"
|
|
2815
|
+
} else <span class="cstat-no" title="statement not covered" >if (data.type === 'compress') {</span>
|
|
2055
2816
|
const batch = <span class="cstat-no" title="statement not covered" >data.batch</span>
|
|
2056
2817
|
const batchSize = <span class="cstat-no" title="statement not covered" >batch.byteLength</span>
|
|
2057
2818
|
<span class="cstat-no" title="statement not covered" > if (batchSize > this.compressionThreshold) {</span>
|
|
@@ -2070,6 +2831,8 @@ function <span class="fstat-no" title="function not covered" >getTimezone(</span
|
|
|
2070
2831
|
} else {
|
|
2071
2832
|
<span class="cstat-no" title="statement not covered" > this.worker?.postMessage({ type: 'uncompressed', batch: batch })</span>
|
|
2072
2833
|
}
|
|
2834
|
+
} else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="if path not taken" >I</span>if (data.type === 'queue_empty') {</span>
|
|
2835
|
+
<span class="cstat-no" title="statement not covered" > this.onSessionSent()</span>
|
|
2073
2836
|
}
|
|
2074
2837
|
}
|
|
2075
2838
|
const alertWorker = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
@@ -2142,7 +2905,7 @@ function <span class="fstat-no" title="function not covered" >getTimezone(</span
|
|
|
2142
2905
|
body: JSON.stringify({
|
|
2143
2906
|
context,
|
|
2144
2907
|
// @ts-ignore
|
|
2145
|
-
error: `${e}`,
|
|
2908
|
+
error: `${e as unknown as string}`,
|
|
2146
2909
|
}),
|
|
2147
2910
|
})
|
|
2148
2911
|
}
|
|
@@ -2164,20 +2927,32 @@ function <span class="fstat-no" title="function not covered" >getTimezone(</span
|
|
|
2164
2927
|
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this._usingOldFetchPlugin && message[0] === MType.NetworkRequest) {</span>
|
|
2165
2928
|
<span class="cstat-no" title="statement not covered" > return</span>
|
|
2166
2929
|
}
|
|
2167
|
-
// ====================================================
|
|
2168
2930
|
|
|
2169
|
-
|
|
2931
|
+
// ====================================================
|
|
2932
|
+
<span class="cstat-no" title="statement not covered" > if (this.activityState === ActivityState.ColdStart) {</span>
|
|
2933
|
+
<span class="cstat-no" title="statement not covered" > this.bufferedMessages1.push(message)</span>
|
|
2934
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.singleBuffer) {</span>
|
|
2935
|
+
<span class="cstat-no" title="statement not covered" > this.bufferedMessages2.push(message)</span>
|
|
2936
|
+
}
|
|
2937
|
+
<span class="cstat-no" title="statement not covered" > this.conditionsManager?.processMessage(message)</span>
|
|
2938
|
+
} else {
|
|
2939
|
+
<span class="cstat-no" title="statement not covered" > this.messages.push(message)</span>
|
|
2940
|
+
}
|
|
2170
2941
|
// TODO: commit on start if there were `urgent` sends;
|
|
2171
2942
|
// Clarify where urgent can be used for;
|
|
2172
2943
|
// Clarify workflow for each type of message in case it was sent before start
|
|
2173
2944
|
// (like Fetch before start; maybe add an option "preCapture: boolean" or sth alike)
|
|
2174
|
-
// Careful: `this.delay` is equal to zero before start
|
|
2945
|
+
// Careful: `this.delay` is equal to zero before start so all Timestamp-s will have to be updated on start
|
|
2175
2946
|
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.activityState === ActivityState.Active && urgent) {</span>
|
|
2176
2947
|
<span class="cstat-no" title="statement not covered" > this.commit()</span>
|
|
2177
2948
|
}
|
|
2178
2949
|
}
|
|
2179
2950
|
|
|
2180
|
-
|
|
2951
|
+
/**
|
|
2952
|
+
* Normal workflow: add timestamp and tab data to batch, then commit it
|
|
2953
|
+
* every ~30ms
|
|
2954
|
+
* */
|
|
2955
|
+
private <span class="fstat-no" title="function not covered" >_nCommit(</span>): void {
|
|
2181
2956
|
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.worker !== undefined && this.messages.length) {</span>
|
|
2182
2957
|
<span class="cstat-no" title="statement not covered" > requestIdleCb(<span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
2183
2958
|
<span class="cstat-no" title="statement not covered" > this.messages.unshift(TabData(this.session.getTabId()))</span>
|
|
@@ -2189,6 +2964,39 @@ function <span class="fstat-no" title="function not covered" >getTimezone(</span
|
|
|
2189
2964
|
})
|
|
2190
2965
|
}
|
|
2191
2966
|
}
|
|
2967
|
+
|
|
2968
|
+
<span class="cstat-no" title="statement not covered" > coldStartCommitN = 0</span>
|
|
2969
|
+
|
|
2970
|
+
/**
|
|
2971
|
+
* Cold start: add timestamp and tab data to both batches
|
|
2972
|
+
* every 2nd tick, ~60ms
|
|
2973
|
+
* this will make batches a bit larger and replay will work with bigger jumps every frame
|
|
2974
|
+
* but in turn we don't overload batch writer on session start with 1000 batches
|
|
2975
|
+
* */
|
|
2976
|
+
private <span class="fstat-no" title="function not covered" >_cStartCommit(</span>): void {
|
|
2977
|
+
<span class="cstat-no" title="statement not covered" > this.coldStartCommitN += 1</span>
|
|
2978
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.coldStartCommitN === 2) {</span>
|
|
2979
|
+
<span class="cstat-no" title="statement not covered" > this.bufferedMessages1.push(Timestamp(this.timestamp()))</span>
|
|
2980
|
+
<span class="cstat-no" title="statement not covered" > this.bufferedMessages1.push(TabData(this.session.getTabId()))</span>
|
|
2981
|
+
<span class="cstat-no" title="statement not covered" > this.bufferedMessages2.push(Timestamp(this.timestamp()))</span>
|
|
2982
|
+
<span class="cstat-no" title="statement not covered" > this.bufferedMessages2.push(TabData(this.session.getTabId()))</span>
|
|
2983
|
+
<span class="cstat-no" title="statement not covered" > this.coldStartCommitN = 0</span>
|
|
2984
|
+
}
|
|
2985
|
+
}
|
|
2986
|
+
|
|
2987
|
+
private <span class="fstat-no" title="function not covered" >commit(</span>): void {
|
|
2988
|
+
<span class="cstat-no" title="statement not covered" > if (this.activityState === ActivityState.ColdStart) {</span>
|
|
2989
|
+
<span class="cstat-no" title="statement not covered" > this._cStartCommit()</span>
|
|
2990
|
+
} else {
|
|
2991
|
+
<span class="cstat-no" title="statement not covered" > this._nCommit()</span>
|
|
2992
|
+
}
|
|
2993
|
+
}
|
|
2994
|
+
|
|
2995
|
+
private <span class="fstat-no" title="function not covered" >postToWorker(</span>messages: Array<Message>) {
|
|
2996
|
+
<span class="cstat-no" title="statement not covered" > this.worker?.postMessage(messages)</span>
|
|
2997
|
+
<span class="cstat-no" title="statement not covered" > this.commitCallbacks.forEach(<span class="fstat-no" title="function not covered" >(c</span>b) => <span class="cstat-no" title="statement not covered" >cb(messages))</span></span>
|
|
2998
|
+
<span class="cstat-no" title="statement not covered" > messages.length = 0</span>
|
|
2999
|
+
}
|
|
2192
3000
|
|
|
2193
3001
|
private <span class="cstat-no" title="statement not covered" >delay = 0</span>
|
|
2194
3002
|
|
|
@@ -2361,19 +3169,289 @@ function <span class="fstat-no" title="function not covered" >getTimezone(</span
|
|
|
2361
3169
|
}
|
|
2362
3170
|
}
|
|
2363
3171
|
|
|
2364
|
-
|
|
3172
|
+
<span class="cstat-no" title="statement not covered" > coldInterval: ReturnType<typeof setInterval> | null = null</span>
|
|
3173
|
+
<span class="cstat-no" title="statement not covered" > orderNumber = 0</span>
|
|
3174
|
+
<span class="cstat-no" title="statement not covered" > coldStartTs = 0</span>
|
|
3175
|
+
<span class="cstat-no" title="statement not covered" > singleBuffer = false</span>
|
|
3176
|
+
|
|
3177
|
+
private <span class="fstat-no" title="function not covered" >checkSessionToken(</span>forceNew?: boolean) {
|
|
3178
|
+
const lsReset = <span class="cstat-no" title="statement not covered" >this.sessionStorage.getItem(this.options.session_reset_key) !== null</span>
|
|
3179
|
+
const needNewSessionID = <span class="cstat-no" title="statement not covered" >forceNew || lsReset</span>
|
|
3180
|
+
const sessionToken = <span class="cstat-no" title="statement not covered" >this.session.getSessionToken()</span>
|
|
3181
|
+
|
|
3182
|
+
<span class="cstat-no" title="statement not covered" > return needNewSessionID || !sessionToken</span>
|
|
3183
|
+
}
|
|
3184
|
+
/**
|
|
3185
|
+
* start buffering messages without starting the actual session, which gives
|
|
3186
|
+
* user 30 seconds to "activate" and record session by calling `start()` on conditional trigger
|
|
3187
|
+
* and we will then send buffered batch, so it won't get lost
|
|
3188
|
+
* */
|
|
3189
|
+
public async <span class="fstat-no" title="function not covered" >coldStart(</span>startOpts: StartOptions = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span> conditional?: boolean) {
|
|
3190
|
+
<span class="cstat-no" title="statement not covered" > this.singleBuffer = false</span>
|
|
3191
|
+
const second = <span class="cstat-no" title="statement not covered" >1000</span>
|
|
3192
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (conditional) {</span>
|
|
3193
|
+
<span class="cstat-no" title="statement not covered" > this.conditionsManager = new ConditionsManager(this, startOpts)</span>
|
|
3194
|
+
}
|
|
3195
|
+
const isNewSession = <span class="cstat-no" title="statement not covered" >this.checkSessionToken(startOpts.forceNew)</span>
|
|
3196
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (conditional) {</span>
|
|
3197
|
+
const r = <span class="cstat-no" title="statement not covered" >await fetch(this.options.ingestPoint + '/v1/web/start', {</span>
|
|
3198
|
+
method: 'POST',
|
|
3199
|
+
headers: {
|
|
3200
|
+
'Content-Type': 'application/json',
|
|
3201
|
+
},
|
|
3202
|
+
body: JSON.stringify({
|
|
3203
|
+
...this.getTrackerInfo(),
|
|
3204
|
+
timestamp: now(),
|
|
3205
|
+
doNotRecord: true,
|
|
3206
|
+
bufferDiff: 0,
|
|
3207
|
+
userID: this.session.getInfo().userID,
|
|
3208
|
+
token: undefined,
|
|
3209
|
+
deviceMemory,
|
|
3210
|
+
jsHeapSizeLimit,
|
|
3211
|
+
timezone: getTimezone(),
|
|
3212
|
+
}),
|
|
3213
|
+
})
|
|
3214
|
+
// this token is needed to fetch conditions and flags,
|
|
3215
|
+
// but it can't be used to record a session
|
|
3216
|
+
const {
|
|
3217
|
+
token,
|
|
3218
|
+
userBrowser,
|
|
3219
|
+
userCity,
|
|
3220
|
+
userCountry,
|
|
3221
|
+
userDevice,
|
|
3222
|
+
userOS,
|
|
3223
|
+
userState,
|
|
3224
|
+
projectID,
|
|
3225
|
+
} = <span class="cstat-no" title="statement not covered" >await r.json()</span>
|
|
3226
|
+
<span class="cstat-no" title="statement not covered" > this.session.assign({ projectID })</span>
|
|
3227
|
+
<span class="cstat-no" title="statement not covered" > this.session.setUserInfo({</span>
|
|
3228
|
+
userBrowser,
|
|
3229
|
+
userCity,
|
|
3230
|
+
userCountry,
|
|
3231
|
+
userDevice,
|
|
3232
|
+
userOS,
|
|
3233
|
+
userState,
|
|
3234
|
+
})
|
|
3235
|
+
const onStartInfo = <span class="cstat-no" title="statement not covered" >{ sessionToken: token, userUUID: '', sessionID: '' }</span>
|
|
3236
|
+
<span class="cstat-no" title="statement not covered" > this.startCallbacks.forEach(<span class="fstat-no" title="function not covered" >(c</span>b) => <span class="cstat-no" title="statement not covered" >cb(onStartInfo))</span></span>
|
|
3237
|
+
<span class="cstat-no" title="statement not covered" > await this.conditionsManager?.fetchConditions(projectID as string, token as string)</span>
|
|
3238
|
+
<span class="cstat-no" title="statement not covered" > await this.featureFlags.reloadFlags(token as string)</span>
|
|
3239
|
+
<span class="cstat-no" title="statement not covered" > this.conditionsManager?.processFlags(this.featureFlags.flags)</span>
|
|
3240
|
+
}
|
|
3241
|
+
const cycle = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
3242
|
+
<span class="cstat-no" title="statement not covered" > this.orderNumber += 1</span>
|
|
3243
|
+
<span class="cstat-no" title="statement not covered" > adjustTimeOrigin()</span>
|
|
3244
|
+
<span class="cstat-no" title="statement not covered" > this.coldStartTs = now()</span>
|
|
3245
|
+
<span class="cstat-no" title="statement not covered" > if (this.orderNumber % 2 === 0) {</span>
|
|
3246
|
+
<span class="cstat-no" title="statement not covered" > this.bufferedMessages1.length = 0</span>
|
|
3247
|
+
<span class="cstat-no" title="statement not covered" > this.bufferedMessages1.push(Timestamp(this.timestamp()))</span>
|
|
3248
|
+
<span class="cstat-no" title="statement not covered" > this.bufferedMessages1.push(TabData(this.session.getTabId()))</span>
|
|
3249
|
+
} else {
|
|
3250
|
+
<span class="cstat-no" title="statement not covered" > this.bufferedMessages2.length = 0</span>
|
|
3251
|
+
<span class="cstat-no" title="statement not covered" > this.bufferedMessages2.push(Timestamp(this.timestamp()))</span>
|
|
3252
|
+
<span class="cstat-no" title="statement not covered" > this.bufferedMessages2.push(TabData(this.session.getTabId()))</span>
|
|
3253
|
+
}
|
|
3254
|
+
<span class="cstat-no" title="statement not covered" > this.stop(false)</span>
|
|
3255
|
+
<span class="cstat-no" title="statement not covered" > this.activityState = ActivityState.ColdStart</span>
|
|
3256
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (startOpts.sessionHash) {</span>
|
|
3257
|
+
<span class="cstat-no" title="statement not covered" > this.session.applySessionHash(startOpts.sessionHash)</span>
|
|
3258
|
+
}
|
|
3259
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (startOpts.forceNew) {</span>
|
|
3260
|
+
// Reset session metadata only if requested directly
|
|
3261
|
+
<span class="cstat-no" title="statement not covered" > this.session.reset()</span>
|
|
3262
|
+
}
|
|
3263
|
+
<span class="cstat-no" title="statement not covered" > this.session.assign({</span>
|
|
3264
|
+
// MBTODO: maybe it would make sense to `forceNew` if the `userID` was changed
|
|
3265
|
+
userID: startOpts.userID,
|
|
3266
|
+
metadata: startOpts.metadata,
|
|
3267
|
+
})
|
|
3268
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!isNewSession) {</span>
|
|
3269
|
+
<span class="cstat-no" title="statement not covered" > this.debug.log('continuing session on new tab', this.session.getTabId())</span>
|
|
3270
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
3271
|
+
<span class="cstat-no" title="statement not covered" > this.send(TabChange(this.session.getTabId()))</span>
|
|
3272
|
+
}
|
|
3273
|
+
<span class="cstat-no" title="statement not covered" > this.observer.observe()</span>
|
|
3274
|
+
<span class="cstat-no" title="statement not covered" > this.ticker.start()</span>
|
|
3275
|
+
}
|
|
3276
|
+
<span class="cstat-no" title="statement not covered" > this.coldInterval = setInterval(<span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
3277
|
+
<span class="cstat-no" title="statement not covered" > cycle()</span>
|
|
3278
|
+
}, 30 * second)
|
|
3279
|
+
<span class="cstat-no" title="statement not covered" > cycle()</span>
|
|
3280
|
+
}
|
|
3281
|
+
|
|
3282
|
+
<span class="cstat-no" title="statement not covered" > onSessionSent = <span class="fstat-no" title="function not covered" >() =</span>> {</span>
|
|
3283
|
+
<span class="cstat-no" title="statement not covered" > return</span>
|
|
3284
|
+
}
|
|
3285
|
+
|
|
3286
|
+
/**
|
|
3287
|
+
* Starts offline session recording
|
|
3288
|
+
* @param {Object} startOpts - options for session start, same as .start()
|
|
3289
|
+
* @param {Function} onSessionSent - callback that will be called once session is fully sent
|
|
3290
|
+
* */
|
|
3291
|
+
public <span class="fstat-no" title="function not covered" >offlineRecording(</span>startOpts: StartOptions = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span> onSessionSent: () => void) {
|
|
3292
|
+
<span class="cstat-no" title="statement not covered" > this.onSessionSent = onSessionSent</span>
|
|
3293
|
+
<span class="cstat-no" title="statement not covered" > this.singleBuffer = true</span>
|
|
3294
|
+
const isNewSession = <span class="cstat-no" title="statement not covered" >this.checkSessionToken(startOpts.forceNew)</span>
|
|
3295
|
+
<span class="cstat-no" title="statement not covered" > adjustTimeOrigin()</span>
|
|
3296
|
+
<span class="cstat-no" title="statement not covered" > this.coldStartTs = now()</span>
|
|
3297
|
+
const saverBuffer = <span class="cstat-no" title="statement not covered" >this.localStorage.getItem(bufferStorageKey)</span>
|
|
3298
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (saverBuffer) {</span>
|
|
3299
|
+
const data = <span class="cstat-no" title="statement not covered" >JSON.parse(saverBuffer)</span>
|
|
3300
|
+
<span class="cstat-no" title="statement not covered" > this.bufferedMessages1 = Array.isArray(data) ? data : this.bufferedMessages1</span>
|
|
3301
|
+
<span class="cstat-no" title="statement not covered" > this.localStorage.removeItem(bufferStorageKey)</span>
|
|
3302
|
+
}
|
|
3303
|
+
<span class="cstat-no" title="statement not covered" > this.bufferedMessages1.push(Timestamp(this.timestamp()))</span>
|
|
3304
|
+
<span class="cstat-no" title="statement not covered" > this.bufferedMessages1.push(TabData(this.session.getTabId()))</span>
|
|
3305
|
+
<span class="cstat-no" title="statement not covered" > this.activityState = ActivityState.ColdStart</span>
|
|
3306
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (startOpts.sessionHash) {</span>
|
|
3307
|
+
<span class="cstat-no" title="statement not covered" > this.session.applySessionHash(startOpts.sessionHash)</span>
|
|
3308
|
+
}
|
|
3309
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (startOpts.forceNew) {</span>
|
|
3310
|
+
// Reset session metadata only if requested directly
|
|
3311
|
+
<span class="cstat-no" title="statement not covered" > this.session.reset()</span>
|
|
3312
|
+
}
|
|
3313
|
+
<span class="cstat-no" title="statement not covered" > this.session.assign({</span>
|
|
3314
|
+
// MBTODO: maybe it would make sense to `forceNew` if the `userID` was changed
|
|
3315
|
+
userID: startOpts.userID,
|
|
3316
|
+
metadata: startOpts.metadata,
|
|
3317
|
+
})
|
|
3318
|
+
const onStartInfo = <span class="cstat-no" title="statement not covered" >{ sessionToken: '', userUUID: '', sessionID: '' }</span>
|
|
3319
|
+
<span class="cstat-no" title="statement not covered" > this.startCallbacks.forEach(<span class="fstat-no" title="function not covered" >(c</span>b) => <span class="cstat-no" title="statement not covered" >cb(onStartInfo))</span></span>
|
|
3320
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!isNewSession) {</span>
|
|
3321
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
3322
|
+
<span class="cstat-no" title="statement not covered" > this.send(TabChange(this.session.getTabId()))</span>
|
|
3323
|
+
}
|
|
3324
|
+
<span class="cstat-no" title="statement not covered" > this.observer.observe()</span>
|
|
3325
|
+
<span class="cstat-no" title="statement not covered" > this.ticker.start()</span>
|
|
3326
|
+
|
|
3327
|
+
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
3328
|
+
saveBuffer: this.saveBuffer,
|
|
3329
|
+
getBuffer: this.getBuffer,
|
|
3330
|
+
setBuffer: this.setBuffer,
|
|
3331
|
+
}
|
|
3332
|
+
}
|
|
3333
|
+
|
|
3334
|
+
/**
|
|
3335
|
+
* Saves the captured messages in localStorage (or whatever is used in its place)
|
|
3336
|
+
*
|
|
3337
|
+
* Then when this.offlineRecording is called, it will preload this messages and clear the storage item
|
|
3338
|
+
*
|
|
3339
|
+
* Keeping the size of local storage reasonable is up to the end users of this library
|
|
3340
|
+
* */
|
|
3341
|
+
public <span class="fstat-no" title="function not covered" >saveBuffer(</span>) {
|
|
3342
|
+
<span class="cstat-no" title="statement not covered" > this.localStorage.setItem(bufferStorageKey, JSON.stringify(this.bufferedMessages1))</span>
|
|
3343
|
+
}
|
|
3344
|
+
|
|
3345
|
+
/**
|
|
3346
|
+
* @returns buffer with stored messages for offline recording
|
|
3347
|
+
* */
|
|
3348
|
+
public <span class="fstat-no" title="function not covered" >getBuffer(</span>) {
|
|
3349
|
+
<span class="cstat-no" title="statement not covered" > return this.bufferedMessages1</span>
|
|
3350
|
+
}
|
|
3351
|
+
|
|
3352
|
+
/**
|
|
3353
|
+
* Used to set a buffer with messages array
|
|
3354
|
+
* */
|
|
3355
|
+
public <span class="fstat-no" title="function not covered" >setBuffer(</span>buffer: Message[]) {
|
|
3356
|
+
<span class="cstat-no" title="statement not covered" > this.bufferedMessages1 = buffer</span>
|
|
3357
|
+
}
|
|
3358
|
+
|
|
3359
|
+
/**
|
|
3360
|
+
* Uploads the stored session buffer to backend
|
|
3361
|
+
* @returns promise that resolves once messages are loaded, it has to be awaited
|
|
3362
|
+
* so the session can be uploaded properly
|
|
3363
|
+
* @resolve {boolean} - if messages were loaded successfully
|
|
3364
|
+
* @reject {string} - error message
|
|
3365
|
+
* */
|
|
3366
|
+
public async <span class="fstat-no" title="function not covered" >uploadOfflineRecording(</span>) {
|
|
3367
|
+
<span class="cstat-no" title="statement not covered" > this.stop(false)</span>
|
|
3368
|
+
const timestamp = <span class="cstat-no" title="statement not covered" >now()</span>
|
|
3369
|
+
<span class="cstat-no" title="statement not covered" > this.worker?.postMessage({</span>
|
|
3370
|
+
type: 'start',
|
|
3371
|
+
pageNo: this.session.incPageNo(),
|
|
3372
|
+
ingestPoint: this.options.ingestPoint,
|
|
3373
|
+
timestamp: this.coldStartTs,
|
|
3374
|
+
url: document.URL,
|
|
3375
|
+
connAttemptCount: this.options.connAttemptCount,
|
|
3376
|
+
connAttemptGap: this.options.connAttemptGap,
|
|
3377
|
+
tabId: this.session.getTabId(),
|
|
3378
|
+
})
|
|
3379
|
+
const r = <span class="cstat-no" title="statement not covered" >await fetch(this.options.ingestPoint + '/v1/web/start', {</span>
|
|
3380
|
+
method: 'POST',
|
|
3381
|
+
headers: {
|
|
3382
|
+
'Content-Type': 'application/json',
|
|
3383
|
+
},
|
|
3384
|
+
body: JSON.stringify({
|
|
3385
|
+
...this.getTrackerInfo(),
|
|
3386
|
+
timestamp: timestamp,
|
|
3387
|
+
doNotRecord: false,
|
|
3388
|
+
bufferDiff: timestamp - this.coldStartTs,
|
|
3389
|
+
userID: this.session.getInfo().userID,
|
|
3390
|
+
token: undefined,
|
|
3391
|
+
deviceMemory,
|
|
3392
|
+
jsHeapSizeLimit,
|
|
3393
|
+
timezone: getTimezone(),
|
|
3394
|
+
}),
|
|
3395
|
+
})
|
|
3396
|
+
const {
|
|
3397
|
+
token,
|
|
3398
|
+
userBrowser,
|
|
3399
|
+
userCity,
|
|
3400
|
+
userCountry,
|
|
3401
|
+
userDevice,
|
|
3402
|
+
userOS,
|
|
3403
|
+
userState,
|
|
3404
|
+
beaconSizeLimit,
|
|
3405
|
+
projectID,
|
|
3406
|
+
} = <span class="cstat-no" title="statement not covered" >await r.json()</span>
|
|
3407
|
+
<span class="cstat-no" title="statement not covered" > this.worker?.postMessage({</span>
|
|
3408
|
+
type: 'auth',
|
|
3409
|
+
token,
|
|
3410
|
+
beaconSizeLimit,
|
|
3411
|
+
})
|
|
3412
|
+
<span class="cstat-no" title="statement not covered" > this.session.assign({ projectID })</span>
|
|
3413
|
+
<span class="cstat-no" title="statement not covered" > this.session.setUserInfo({</span>
|
|
3414
|
+
userBrowser,
|
|
3415
|
+
userCity,
|
|
3416
|
+
userCountry,
|
|
3417
|
+
userDevice,
|
|
3418
|
+
userOS,
|
|
3419
|
+
userState,
|
|
3420
|
+
})
|
|
3421
|
+
<span class="cstat-no" title="statement not covered" > while (this.bufferedMessages1.length > 0) {</span>
|
|
3422
|
+
<span class="cstat-no" title="statement not covered" > await this.flushBuffer(this.bufferedMessages1)</span>
|
|
3423
|
+
}
|
|
3424
|
+
<span class="cstat-no" title="statement not covered" > this.postToWorker([['q_end']] as unknown as Message[])</span>
|
|
3425
|
+
<span class="cstat-no" title="statement not covered" > this.clearBuffers()</span>
|
|
3426
|
+
}
|
|
3427
|
+
|
|
3428
|
+
private <span class="fstat-no" title="function not covered" >_start(</span>
|
|
3429
|
+
startOpts: StartOptions = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span>
|
|
3430
|
+
resetByWorker = <span class="branch-0 cbranch-no" title="branch not covered" >false,</span>
|
|
3431
|
+
conditionName?: string,
|
|
3432
|
+
): Promise<StartPromiseReturn> {
|
|
3433
|
+
const isColdStart = <span class="cstat-no" title="statement not covered" >this.activityState === ActivityState.ColdStart</span>
|
|
3434
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (isColdStart && this.coldInterval) {</span>
|
|
3435
|
+
<span class="cstat-no" title="statement not covered" > clearInterval(this.coldInterval)</span>
|
|
3436
|
+
}
|
|
2365
3437
|
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.worker) {</span>
|
|
2366
|
-
<span class="cstat-no" title="statement not covered" >
|
|
3438
|
+
const reason = <span class="cstat-no" title="statement not covered" >'No worker found: perhaps, CSP is not set.'</span>
|
|
3439
|
+
<span class="cstat-no" title="statement not covered" > this.signalError(reason, [])</span>
|
|
3440
|
+
<span class="cstat-no" title="statement not covered" > return Promise.resolve(UnsuccessfulStart(reason))</span>
|
|
2367
3441
|
}
|
|
2368
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
|
|
2373
|
-
|
|
3442
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (</span>
|
|
3443
|
+
this.activityState === ActivityState.Active ||
|
|
3444
|
+
this.activityState === ActivityState.Starting
|
|
3445
|
+
) {
|
|
3446
|
+
const reason =
|
|
3447
|
+
<span class="cstat-no" title="statement not covered" > 'OpenReplay: trying to call `start()` on the instance that has been started already.'</span>
|
|
3448
|
+
<span class="cstat-no" title="statement not covered" > this.signalError(reason, [])</span>
|
|
3449
|
+
<span class="cstat-no" title="statement not covered" > return Promise.resolve(UnsuccessfulStart(reason))</span>
|
|
2374
3450
|
}
|
|
2375
3451
|
<span class="cstat-no" title="statement not covered" > this.activityState = ActivityState.Starting</span>
|
|
2376
|
-
<span class="cstat-no" title="statement not covered" >
|
|
3452
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!isColdStart) {</span>
|
|
3453
|
+
<span class="cstat-no" title="statement not covered" > adjustTimeOrigin()</span>
|
|
3454
|
+
}
|
|
2377
3455
|
|
|
2378
3456
|
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (startOpts.sessionHash) {</span>
|
|
2379
3457
|
<span class="cstat-no" title="statement not covered" > this.session.applySessionHash(startOpts.sessionHash)</span>
|
|
@@ -2393,22 +3471,20 @@ function <span class="fstat-no" title="function not covered" >getTimezone(</span
|
|
|
2393
3471
|
type: 'start',
|
|
2394
3472
|
pageNo: this.session.incPageNo(),
|
|
2395
3473
|
ingestPoint: this.options.ingestPoint,
|
|
2396
|
-
timestamp,
|
|
3474
|
+
timestamp: isColdStart ? this.coldStartTs : timestamp,
|
|
2397
3475
|
url: document.URL,
|
|
2398
3476
|
connAttemptCount: this.options.connAttemptCount,
|
|
2399
3477
|
connAttemptGap: this.options.connAttemptGap,
|
|
2400
3478
|
tabId: this.session.getTabId(),
|
|
2401
3479
|
})
|
|
2402
3480
|
|
|
2403
|
-
const lsReset = <span class="cstat-no" title="statement not covered" >this.sessionStorage.getItem(this.options.session_reset_key) !== null</span>
|
|
2404
|
-
<span class="cstat-no" title="statement not covered" > this.sessionStorage.removeItem(this.options.session_reset_key)</span>
|
|
2405
|
-
const needNewSessionID = <span class="cstat-no" title="statement not covered" >startOpts.forceNew || lsReset || resetByWorker</span>
|
|
2406
3481
|
const sessionToken = <span class="cstat-no" title="statement not covered" >this.session.getSessionToken()</span>
|
|
2407
|
-
const isNewSession = <span class="cstat-no" title="statement not covered" >
|
|
3482
|
+
const isNewSession = <span class="cstat-no" title="statement not covered" >this.checkSessionToken(startOpts.forceNew)</span>
|
|
3483
|
+
<span class="cstat-no" title="statement not covered" > this.sessionStorage.removeItem(this.options.session_reset_key)</span>
|
|
2408
3484
|
|
|
2409
3485
|
<span class="cstat-no" title="statement not covered" > this.debug.log(</span>
|
|
2410
3486
|
'OpenReplay: starting session; need new session id?',
|
|
2411
|
-
|
|
3487
|
+
isNewSession,
|
|
2412
3488
|
'session token: ',
|
|
2413
3489
|
sessionToken,
|
|
2414
3490
|
)
|
|
@@ -2421,11 +3497,14 @@ function <span class="fstat-no" title="function not covered" >getTimezone(</span
|
|
|
2421
3497
|
body: JSON.stringify({
|
|
2422
3498
|
...this.getTrackerInfo(),
|
|
2423
3499
|
timestamp,
|
|
3500
|
+
doNotRecord: false,
|
|
3501
|
+
bufferDiff: timestamp - this.coldStartTs,
|
|
2424
3502
|
userID: this.session.getInfo().userID,
|
|
2425
3503
|
token: isNewSession ? undefined : sessionToken,
|
|
2426
3504
|
deviceMemory,
|
|
2427
3505
|
jsHeapSizeLimit,
|
|
2428
3506
|
timezone: getTimezone(),
|
|
3507
|
+
condition: conditionName,
|
|
2429
3508
|
}),
|
|
2430
3509
|
})
|
|
2431
3510
|
.then(<span class="fstat-no" title="function not covered" >(r</span>) => {
|
|
@@ -2441,12 +3520,16 @@ function <span class="fstat-no" title="function not covered" >getTimezone(</span
|
|
|
2441
3520
|
)
|
|
2442
3521
|
}
|
|
2443
3522
|
})
|
|
2444
|
-
.then(<span class="fstat-no" title="function not covered" >(r</span>) =>
|
|
3523
|
+
.then(<span class="fstat-no" title="function not covered" >async (r</span>) =><span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > {</span></span>
|
|
2445
3524
|
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!this.worker) {</span>
|
|
2446
|
-
<span class="cstat-no" title="statement not covered" >
|
|
3525
|
+
const reason = <span class="cstat-no" title="statement not covered" >'no worker found after start request (this might not happen)'</span>
|
|
3526
|
+
<span class="cstat-no" title="statement not covered" > this.signalError(reason, [])</span>
|
|
3527
|
+
<span class="cstat-no" title="statement not covered" > return Promise.reject(reason)</span>
|
|
2447
3528
|
}
|
|
2448
3529
|
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.activityState === ActivityState.NotActive) {</span>
|
|
2449
|
-
<span class="cstat-no" title="statement not covered" >
|
|
3530
|
+
const reason = <span class="cstat-no" title="statement not covered" >'Tracker stopped during authorization'</span>
|
|
3531
|
+
<span class="cstat-no" title="statement not covered" > this.signalError(reason, [])</span>
|
|
3532
|
+
<span class="cstat-no" title="statement not covered" > return Promise.reject(reason)</span>
|
|
2450
3533
|
}
|
|
2451
3534
|
const {
|
|
2452
3535
|
token,
|
|
@@ -2475,7 +3558,9 @@ function <span class="fstat-no" title="function not covered" >getTimezone(</span
|
|
|
2475
3558
|
typeof delay !== 'number' ||
|
|
2476
3559
|
(typeof beaconSizeLimit !== 'number' && typeof beaconSizeLimit !== 'undefined')
|
|
2477
3560
|
) {
|
|
2478
|
-
<span class="cstat-no" title="statement not covered"
|
|
3561
|
+
const reason = <span class="cstat-no" title="statement not covered" >`Incorrect server response: ${JSON.stringify(r)}`</span>
|
|
3562
|
+
<span class="cstat-no" title="statement not covered" > this.signalError(reason, [])</span>
|
|
3563
|
+
<span class="cstat-no" title="statement not covered" > return Promise.reject(reason)</span>
|
|
2479
3564
|
}
|
|
2480
3565
|
<span class="cstat-no" title="statement not covered" > this.delay = delay</span>
|
|
2481
3566
|
<span class="cstat-no" title="statement not covered" > this.session.setSessionToken(token)</span>
|
|
@@ -2512,11 +3597,27 @@ function <span class="fstat-no" title="function not covered" >getTimezone(</span
|
|
|
2512
3597
|
|
|
2513
3598
|
<span class="cstat-no" title="statement not covered" > this.compressionThreshold = compressionThreshold</span>
|
|
2514
3599
|
const onStartInfo = <span class="cstat-no" title="statement not covered" >{ sessionToken: token, userUUID, sessionID }</span>
|
|
2515
|
-
|
|
2516
3600
|
// TODO: start as early as possible (before receiving the token)
|
|
2517
3601
|
<span class="cstat-no" title="statement not covered" > this.startCallbacks.forEach(<span class="fstat-no" title="function not covered" >(c</span>b) => <span class="cstat-no" title="statement not covered" >cb(onStartInfo))</span> /</span>/ MBTODO: callbacks after DOM "mounted" (observed)
|
|
2518
|
-
<span class="cstat-no" title="statement not covered" > this.
|
|
2519
|
-
<span class="cstat-no" title="statement not covered" > this.
|
|
3602
|
+
<span class="cstat-no" title="statement not covered" > void this.featureFlags.reloadFlags()</span>
|
|
3603
|
+
<span class="cstat-no" title="statement not covered" > this.activityState = ActivityState.Active</span>
|
|
3604
|
+
|
|
3605
|
+
/** --------------- COLD START BUFFER ------------------*/
|
|
3606
|
+
<span class="cstat-no" title="statement not covered" > if (isColdStart) {</span>
|
|
3607
|
+
const biggestBuffer =
|
|
3608
|
+
<span class="cstat-no" title="statement not covered" > this.bufferedMessages1.length > this.bufferedMessages2.length</span>
|
|
3609
|
+
? this.bufferedMessages1
|
|
3610
|
+
: this.bufferedMessages2
|
|
3611
|
+
<span class="cstat-no" title="statement not covered" > while (biggestBuffer.length > 0) {</span>
|
|
3612
|
+
<span class="cstat-no" title="statement not covered" > await this.flushBuffer(biggestBuffer)</span>
|
|
3613
|
+
}
|
|
3614
|
+
<span class="cstat-no" title="statement not covered" > this.clearBuffers()</span>
|
|
3615
|
+
<span class="cstat-no" title="statement not covered" > this.commit()</span>
|
|
3616
|
+
/** --------------- COLD START BUFFER ------------------*/
|
|
3617
|
+
} else {
|
|
3618
|
+
<span class="cstat-no" title="statement not covered" > this.observer.observe()</span>
|
|
3619
|
+
<span class="cstat-no" title="statement not covered" > this.ticker.start()</span>
|
|
3620
|
+
}
|
|
2520
3621
|
|
|
2521
3622
|
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (canvasEnabled) {</span>
|
|
2522
3623
|
<span class="cstat-no" title="statement not covered" > this.canvasRecorder =</span>
|
|
@@ -2524,9 +3625,7 @@ function <span class="fstat-no" title="function not covered" >getTimezone(</span
|
|
|
2524
3625
|
new CanvasRecorder(this, { fps: canvasFPS, quality: canvasQuality })
|
|
2525
3626
|
<span class="cstat-no" title="statement not covered" > this.canvasRecorder.startTracking()</span>
|
|
2526
3627
|
}
|
|
2527
|
-
<span class="cstat-no" title="statement not covered" > this.activityState = ActivityState.Active</span>
|
|
2528
3628
|
|
|
2529
|
-
<span class="cstat-no" title="statement not covered" > this.notify.log('OpenReplay tracking started.')</span>
|
|
2530
3629
|
// get rid of onStart ?
|
|
2531
3630
|
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof this.options.onStart === 'function') {</span>
|
|
2532
3631
|
<span class="cstat-no" title="statement not covered" > this.options.onStart(onStartInfo)</span>
|
|
@@ -2569,15 +3668,33 @@ function <span class="fstat-no" title="function not covered" >getTimezone(</span
|
|
|
2569
3668
|
<span class="cstat-no" title="statement not covered" > this.stop()</span>
|
|
2570
3669
|
<span class="cstat-no" title="statement not covered" > this.session.reset()</span>
|
|
2571
3670
|
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (reason === CANCELED) {</span>
|
|
3671
|
+
<span class="cstat-no" title="statement not covered" > this.signalError(CANCELED, [])</span>
|
|
2572
3672
|
<span class="cstat-no" title="statement not covered" > return UnsuccessfulStart(CANCELED)</span>
|
|
2573
3673
|
}
|
|
2574
3674
|
|
|
2575
|
-
<span class="cstat-no" title="statement not covered" > this.notify.log('OpenReplay was unable to start. ', reason)</span>
|
|
2576
3675
|
<span class="cstat-no" title="statement not covered" > this._debug('session_start', reason)</span>
|
|
3676
|
+
<span class="cstat-no" title="statement not covered" > this.signalError(START_ERROR, [])</span>
|
|
2577
3677
|
<span class="cstat-no" title="statement not covered" > return UnsuccessfulStart(START_ERROR)</span>
|
|
2578
3678
|
})
|
|
2579
3679
|
}
|
|
2580
3680
|
|
|
3681
|
+
<span class="cstat-no" title="statement not covered" > flushBuffer = <span class="fstat-no" title="function not covered" >async (b</span>uffer: Message[]) =><span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > {</span></span></span>
|
|
3682
|
+
<span class="cstat-no" title="statement not covered" > return new Promise(<span class="fstat-no" title="function not covered" >(r</span>es) => {</span>
|
|
3683
|
+
let ended = <span class="cstat-no" title="statement not covered" >false</span>
|
|
3684
|
+
const messagesBatch: Message[] = <span class="cstat-no" title="statement not covered" >[buffer.shift() as unknown as Message]</span>
|
|
3685
|
+
<span class="cstat-no" title="statement not covered" > while (!ended) {</span>
|
|
3686
|
+
const nextMsg = <span class="cstat-no" title="statement not covered" >buffer[0]</span>
|
|
3687
|
+
<span class="cstat-no" title="statement not covered" > if (!nextMsg || nextMsg[0] === MType.Timestamp) {</span>
|
|
3688
|
+
<span class="cstat-no" title="statement not covered" > ended = true</span>
|
|
3689
|
+
} else {
|
|
3690
|
+
<span class="cstat-no" title="statement not covered" > messagesBatch.push(buffer.shift() as unknown as Message)</span>
|
|
3691
|
+
}
|
|
3692
|
+
}
|
|
3693
|
+
<span class="cstat-no" title="statement not covered" > this.postToWorker(messagesBatch)</span>
|
|
3694
|
+
<span class="cstat-no" title="statement not covered" > res(null)</span>
|
|
3695
|
+
})
|
|
3696
|
+
}
|
|
3697
|
+
|
|
2581
3698
|
<span class="cstat-no" title="statement not covered" > onUxtCb = []</span>
|
|
2582
3699
|
|
|
2583
3700
|
<span class="fstat-no" title="function not covered" > addOnUxtCb(</span>cb: (id: number) => void) {
|
|
@@ -2622,6 +3739,11 @@ function <span class="fstat-no" title="function not covered" >getTimezone(</span
|
|
|
2622
3739
|
<span class="fstat-no" title="function not covered" > getTabId(</span>) {
|
|
2623
3740
|
<span class="cstat-no" title="statement not covered" > return this.session.getTabId()</span>
|
|
2624
3741
|
}
|
|
3742
|
+
|
|
3743
|
+
<span class="fstat-no" title="function not covered" > clearBuffers(</span>) {
|
|
3744
|
+
<span class="cstat-no" title="statement not covered" > this.bufferedMessages1.length = 0</span>
|
|
3745
|
+
<span class="cstat-no" title="statement not covered" > this.bufferedMessages2.length = 0</span>
|
|
3746
|
+
}
|
|
2625
3747
|
|
|
2626
3748
|
/**
|
|
2627
3749
|
* Creates a named hook that expects event name, data string and msg direction (up/down),
|
|
@@ -2652,7 +3774,7 @@ function <span class="fstat-no" title="function not covered" >getTimezone(</span
|
|
|
2652
3774
|
<span class="cstat-no" title="statement not covered" > this.nodes.clear()</span>
|
|
2653
3775
|
<span class="cstat-no" title="statement not covered" > this.ticker.stop()</span>
|
|
2654
3776
|
<span class="cstat-no" title="statement not covered" > this.stopCallbacks.forEach(<span class="fstat-no" title="function not covered" >(c</span>b) => <span class="cstat-no" title="statement not covered" >cb())</span></span>
|
|
2655
|
-
<span class="cstat-no" title="statement not covered" > this.
|
|
3777
|
+
<span class="cstat-no" title="statement not covered" > this.debug.log('OpenReplay tracking stopped.')</span>
|
|
2656
3778
|
<span class="cstat-no" title="statement not covered" > this.tagWatcher.clear()</span>
|
|
2657
3779
|
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (this.worker && stopWorker) {</span>
|
|
2658
3780
|
<span class="cstat-no" title="statement not covered" > this.worker.postMessage('stop')</span>
|
|
@@ -2671,7 +3793,7 @@ function <span class="fstat-no" title="function not covered" >getTimezone(</span
|
|
|
2671
3793
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
2672
3794
|
Code coverage generated by
|
|
2673
3795
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
2674
|
-
at 2024-01-
|
|
3796
|
+
at 2024-01-09T16:51:30.347Z
|
|
2675
3797
|
</div>
|
|
2676
3798
|
<script src="../../prettify.js"></script>
|
|
2677
3799
|
<script>
|