tricc-oo 1.5.0__tar.gz → 1.5.2__tar.gz
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.
- {tricc_oo-1.5.0/tricc_oo.egg-info → tricc_oo-1.5.2}/PKG-INFO +2 -2
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/pyproject.toml +1 -1
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/converters/drawio_type_map.py +14 -9
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/converters/xml_to_tricc.py +1 -1
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/models/calculate.py +2 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/models/tricc.py +2 -1
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/visitors/tricc.py +21 -20
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/visitors/xform_pd.py +5 -1
- {tricc_oo-1.5.0 → tricc_oo-1.5.2/tricc_oo.egg-info}/PKG-INFO +1 -1
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/README.md +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/setup.cfg +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tests/build.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tests/test_cql.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tests/to_ocl.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/__init__.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/converters/__init__.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/converters/codesystem_to_ocl.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/converters/cql/cqlLexer.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/converters/cql/cqlListener.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/converters/cql/cqlParser.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/converters/cql/cqlVisitor.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/converters/cql_to_operation.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/converters/datadictionnary.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/converters/tricc_to_xls_form.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/converters/utils.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/models/__init__.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/models/base.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/models/lang.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/models/ocl.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/models/ordered_set.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/parsers/__init__.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/parsers/xml.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/serializers/__init__.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/serializers/planuml.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/serializers/xls_form.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/strategies/__init__.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/strategies/input/__init__.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/strategies/input/base_input_strategy.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/strategies/input/drawio.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/strategies/output/base_output_strategy.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/strategies/output/spice.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/strategies/output/xls_form.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/strategies/output/xlsform_cdss.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/strategies/output/xlsform_cht.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/strategies/output/xlsform_cht_hf.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/visitors/__init__.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo/visitors/utils.py +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo.egg-info/SOURCES.txt +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo.egg-info/dependency_links.txt +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo.egg-info/requires.txt +0 -0
- {tricc_oo-1.5.0 → tricc_oo-1.5.2}/tricc_oo.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
2
|
Name: tricc-oo
|
|
3
|
-
Version: 1.5.
|
|
3
|
+
Version: 1.5.2
|
|
4
4
|
Summary: Python library that converts CDSS L2 in L3
|
|
5
5
|
Project-URL: Homepage, https://github.com/SwissTPH/tricc
|
|
6
6
|
Project-URL: Issues, https://github.com/SwissTPH/tricc/issues
|
|
@@ -6,19 +6,19 @@ from tricc_oo.models.calculate import *
|
|
|
6
6
|
TYPE_MAP = {
|
|
7
7
|
TriccNodeType.start: {
|
|
8
8
|
"objects": ["UserObject", "object"],
|
|
9
|
-
"attributes": ['process', 'parent', 'form_id','relevance'],
|
|
9
|
+
"attributes": ['process', 'parent', 'form_id','relevance',"priority"],
|
|
10
10
|
"mandatory_attributes": ["label"],
|
|
11
11
|
"model": TriccNodeMainStart
|
|
12
12
|
},
|
|
13
13
|
TriccNodeType.activity_start: {
|
|
14
14
|
"objects": ["UserObject", "object"],
|
|
15
|
-
"attributes": ['parent', 'parent', 'instance', 'relevance'],
|
|
15
|
+
"attributes": ['parent', 'parent', 'instance', 'relevance',"priority"],
|
|
16
16
|
"mandatory_attributes": ["label", "name"],
|
|
17
17
|
"model": TriccNodeActivityStart
|
|
18
18
|
},
|
|
19
19
|
TriccNodeType.note: {
|
|
20
20
|
"objects": ["UserObject", "object"],
|
|
21
|
-
"attributes": ['relevance'],
|
|
21
|
+
"attributes": ['relevance',"priority"],
|
|
22
22
|
"mandatory_attributes": ["label", "name"],
|
|
23
23
|
"model": TriccNodeNote
|
|
24
24
|
},
|
|
@@ -44,6 +44,7 @@ TYPE_MAP = {
|
|
|
44
44
|
"constraint",
|
|
45
45
|
"constraint_message",
|
|
46
46
|
"relevance",
|
|
47
|
+
"priority"
|
|
47
48
|
|
|
48
49
|
],
|
|
49
50
|
"mandatory_attributes": ["label", "name", "list_name"],
|
|
@@ -59,6 +60,7 @@ TYPE_MAP = {
|
|
|
59
60
|
"constraint",
|
|
60
61
|
"constraint_message",
|
|
61
62
|
"relevance",
|
|
63
|
+
"priority"
|
|
62
64
|
],
|
|
63
65
|
"mandatory_attributes": ["label", "name", "list_name"],
|
|
64
66
|
"model": TriccNodeSelectMultiple
|
|
@@ -73,6 +75,7 @@ TYPE_MAP = {
|
|
|
73
75
|
"constraint_message",
|
|
74
76
|
"required",
|
|
75
77
|
"relevance",
|
|
78
|
+
"priority"
|
|
76
79
|
],
|
|
77
80
|
"mandatory_attributes": ["label", "name"],
|
|
78
81
|
"model": TriccNodeDecimal
|
|
@@ -87,6 +90,8 @@ TYPE_MAP = {
|
|
|
87
90
|
"constraint_message",
|
|
88
91
|
"required",
|
|
89
92
|
"relevance",
|
|
93
|
+
"priority"
|
|
94
|
+
|
|
90
95
|
],
|
|
91
96
|
"mandatory_attributes": ["label", "name"],
|
|
92
97
|
"model": TriccNodeInteger
|
|
@@ -94,13 +99,13 @@ TYPE_MAP = {
|
|
|
94
99
|
|
|
95
100
|
TriccNodeType.text: {
|
|
96
101
|
"objects": ["UserObject", "object"],
|
|
97
|
-
"attributes": ["save", "relevance"],
|
|
102
|
+
"attributes": ["save", "relevance","priority"],
|
|
98
103
|
"mandatory_attributes": ["label", 'name'],
|
|
99
104
|
"model": TriccNodeText
|
|
100
105
|
},
|
|
101
106
|
TriccNodeType.date: {
|
|
102
107
|
"objects": ["UserObject", "object"],
|
|
103
|
-
"attributes": ["save", "relevance"],
|
|
108
|
+
"attributes": ["save", "relevance","priority"],
|
|
104
109
|
"mandatory_attributes": ["label", "name"],
|
|
105
110
|
"model": TriccNodeDate
|
|
106
111
|
},
|
|
@@ -154,7 +159,7 @@ TYPE_MAP = {
|
|
|
154
159
|
"filter",
|
|
155
160
|
"constraint",
|
|
156
161
|
"constraint_message",
|
|
157
|
-
"relevance",
|
|
162
|
+
"relevance","priority"
|
|
158
163
|
],
|
|
159
164
|
"mandatory_attributes": ["label", "name", "list_name"],
|
|
160
165
|
"model": TriccNodeSelectYesNo
|
|
@@ -173,7 +178,7 @@ TYPE_MAP = {
|
|
|
173
178
|
},
|
|
174
179
|
TriccNodeType.goto: {
|
|
175
180
|
"objects": ["UserObject", "object"],
|
|
176
|
-
"attributes": ["instance"],
|
|
181
|
+
"attributes": ["instance","priority"],
|
|
177
182
|
"mandatory_attributes": ["link", "label", "name"],
|
|
178
183
|
"model": TriccNodeGoTo
|
|
179
184
|
},
|
|
@@ -191,13 +196,13 @@ TYPE_MAP = {
|
|
|
191
196
|
},
|
|
192
197
|
TriccNodeType.bridge: {
|
|
193
198
|
"objects": ["UserObject", "object"],
|
|
194
|
-
"attributes": ["label"],
|
|
199
|
+
"attributes": ["label","priority"],
|
|
195
200
|
"mandatory_attributes": [],
|
|
196
201
|
"model": TriccNodeBridge
|
|
197
202
|
},
|
|
198
203
|
TriccNodeType.diagnosis: {
|
|
199
204
|
"objects": ["UserObject", "object"],
|
|
200
|
-
"attributes": ["save", "reference"],
|
|
205
|
+
"attributes": ["save", "reference","priority"],
|
|
201
206
|
"mandatory_attributes": [ "name", 'label'],
|
|
202
207
|
"model": TriccNodeDiagnosis
|
|
203
208
|
},
|
|
@@ -53,6 +53,7 @@ class TriccNodeCount(TriccNodeDisplayCalculateBase):
|
|
|
53
53
|
class TriccNodeProposedDiagnosis(TriccNodeDisplayCalculateBase):
|
|
54
54
|
tricc_type: TriccNodeType = TriccNodeType.proposed_diagnosis
|
|
55
55
|
severity: str = None
|
|
56
|
+
priority: Union[float, int, None] = None
|
|
56
57
|
|
|
57
58
|
class TriccNodeFakeCalculateBase(TriccNodeCalculateBase):
|
|
58
59
|
...
|
|
@@ -130,6 +131,7 @@ class TriccNodeRhombus(TriccNodeCalculateBase,TriccRhombusMixIn):
|
|
|
130
131
|
class TriccNodeDiagnosis(TriccNodeDisplayCalculateBase):
|
|
131
132
|
tricc_type: TriccNodeType = TriccNodeType.diagnosis
|
|
132
133
|
severity: str = None
|
|
134
|
+
priority: Union[float, int, None] = None
|
|
133
135
|
def __init__(self, **data):
|
|
134
136
|
data['reference'] = f'"final.{data["name"]}" is true'
|
|
135
137
|
super().__init__(**data)
|
|
@@ -237,7 +237,7 @@ class TriccNodeDisplayModel(TriccNodeBaseModel):
|
|
|
237
237
|
help: Optional[Union[str, TriccNodeBaseModel]] = None
|
|
238
238
|
group: Optional[Union[TriccGroup, TriccNodeActivity]] = None
|
|
239
239
|
relevance: Optional[Union[Expression, TriccOperation]] = None
|
|
240
|
-
|
|
240
|
+
priority: Union[float, int, None] = None
|
|
241
241
|
|
|
242
242
|
# to use the enum value of the TriccNodeType
|
|
243
243
|
|
|
@@ -348,6 +348,7 @@ class TriccNodeSelectYesNo(TriccNodeSelectOne):
|
|
|
348
348
|
|
|
349
349
|
class TriccNodeAcceptDiagnostic(TriccNodeSelectOne):
|
|
350
350
|
severity: Optional[str] = None
|
|
351
|
+
priority: Union[float, int, None] = None
|
|
351
352
|
|
|
352
353
|
|
|
353
354
|
class TriccParentMixIn(BaseModel):
|
|
@@ -67,7 +67,7 @@ def get_last_version(name, processed_nodes, _list=None):
|
|
|
67
67
|
# node is the node to calculate
|
|
68
68
|
# processed_nodes are the list of processed nodes
|
|
69
69
|
def get_node_expressions(node, processed_nodes, process=None):
|
|
70
|
-
is_calculate = issubclass(node.__class__, TriccNodeCalculateBase)
|
|
70
|
+
is_calculate = issubclass(node.__class__, TriccNodeCalculateBase) and not issubclass(node.__class__, (TriccNodeDisplayBridge,TriccNodeBridge))
|
|
71
71
|
expression = None
|
|
72
72
|
# in case of recursive call processed_nodes will be None
|
|
73
73
|
if processed_nodes is None or is_ready_to_process(node, processed_nodes=processed_nodes):
|
|
@@ -369,7 +369,7 @@ def get_bridge_path(prev_nodes, node=None,edge_only=False):
|
|
|
369
369
|
'path_len': node.path_len + 1 * (node == p_p_node)
|
|
370
370
|
}
|
|
371
371
|
|
|
372
|
-
if sum([0 if issubclass(n.__class__, (TriccNodeDisplayCalculateBase, TriccNodeRhombus)) else 1 for n in prev_nodes])>0 :
|
|
372
|
+
if len(prev_nodes)>1 and sum([0 if issubclass(n.__class__, (TriccNodeDisplayCalculateBase, TriccNodeRhombus)) else 1 for n in prev_nodes])>0 :
|
|
373
373
|
calc= TriccNodeDisplayBridge( **data)
|
|
374
374
|
else:
|
|
375
375
|
calc = TriccNodeBridge( **data)
|
|
@@ -1416,31 +1416,30 @@ def reorder_node_list(list_node, group, processed_nodes):
|
|
|
1416
1416
|
|
|
1417
1417
|
# Define a lambda to assign numeric priorities
|
|
1418
1418
|
def filter_logic(l_node):
|
|
1419
|
-
|
|
1419
|
+
priority = (getattr(l_node, "priority", None) or 0) / 100
|
|
1420
1420
|
if (
|
|
1421
1421
|
isinstance(l_node, TriccNodeWait)
|
|
1422
1422
|
and any(isinstance(rn, TriccNodeActivity) and any(sn.activity == rn for sn in list_node) for rn in l_node.reference)
|
|
1423
1423
|
):
|
|
1424
|
-
|
|
1424
|
+
pass
|
|
1425
1425
|
elif group is not None and hasattr(l_node, 'group') and l_node.group and l_node.group.id == group.id:
|
|
1426
|
-
|
|
1426
|
+
priority += 7 # Highest priority: Same group
|
|
1427
1427
|
elif issubclass(l_node.__class__, TriccRhombusMixIn) :
|
|
1428
|
-
|
|
1428
|
+
priority += 1
|
|
1429
1429
|
elif hasattr(group, 'group') and group.group and l_node.group and l_node.group.id == group.group.id:
|
|
1430
|
-
|
|
1430
|
+
priority += 6 # Second priority: Parent group
|
|
1431
1431
|
elif not isinstance(l_node.activity.root, TriccNodeActivityStart) and l_node.activity in active_activities:
|
|
1432
|
-
|
|
1432
|
+
priority += 5 # Third priority: Active activities
|
|
1433
1433
|
elif not isinstance(l_node.activity.root, TriccNodeActivityStart):
|
|
1434
|
-
|
|
1434
|
+
priority += 4 # Third priority: Active activities
|
|
1435
1435
|
elif l_node.activity in active_activities:
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1436
|
+
priority += 3 # Third priority: Active activities
|
|
1439
1437
|
else:
|
|
1440
|
-
|
|
1438
|
+
priority += 2 # Lowest priority: Others
|
|
1439
|
+
return priority
|
|
1441
1440
|
|
|
1442
1441
|
# Sort list_node in place using filter_logic as the key
|
|
1443
|
-
list_node.sort(key=filter_logic, reverse=
|
|
1442
|
+
list_node.sort(key=filter_logic, reverse=True)
|
|
1444
1443
|
return None
|
|
1445
1444
|
|
|
1446
1445
|
def loop_info(loop, **kwargs):
|
|
@@ -1530,7 +1529,7 @@ def get_node_expression( in_node, processed_nodes, is_calculate=False, is_prev=F
|
|
|
1530
1529
|
prev_exp = get_node_expression(
|
|
1531
1530
|
node.path,
|
|
1532
1531
|
processed_nodes=processed_nodes,
|
|
1533
|
-
is_calculate=
|
|
1532
|
+
is_calculate=False,
|
|
1534
1533
|
is_prev=True,
|
|
1535
1534
|
process=process)
|
|
1536
1535
|
if prev_exp and expression:
|
|
@@ -1700,7 +1699,7 @@ def get_accept_diagnostic_node(code, display, severity, activity):
|
|
|
1700
1699
|
node.options = get_select_accept_reject_options(node, node.activity)
|
|
1701
1700
|
return node
|
|
1702
1701
|
|
|
1703
|
-
def get_diagnostic_node(code, display, severity, activity):
|
|
1702
|
+
def get_diagnostic_node(code, display, severity, priority, activity):
|
|
1704
1703
|
node = TriccNodeAcceptDiagnostic(
|
|
1705
1704
|
id=generate_id("final." + code),
|
|
1706
1705
|
name="final." + code,
|
|
@@ -1708,7 +1707,9 @@ def get_diagnostic_node(code, display, severity, activity):
|
|
|
1708
1707
|
list_name="acc_rej",
|
|
1709
1708
|
activity=activity,
|
|
1710
1709
|
group=activity,
|
|
1711
|
-
severity=severity
|
|
1710
|
+
severity=severity,
|
|
1711
|
+
priority=priority
|
|
1712
|
+
|
|
1712
1713
|
)
|
|
1713
1714
|
node.options = get_select_accept_reject_options(node, node.activity)
|
|
1714
1715
|
return node
|
|
@@ -1760,7 +1761,7 @@ def create_determine_diagnosis_activity(diags):
|
|
|
1760
1761
|
)
|
|
1761
1762
|
activity.nodes[end.id]=end
|
|
1762
1763
|
for proposed in diags:
|
|
1763
|
-
d = get_diagnostic_node(proposed.name, proposed.label, proposed.severity, activity)
|
|
1764
|
+
d = get_diagnostic_node(proposed.name, proposed.label, proposed.severity, proposed.priority, activity)
|
|
1764
1765
|
diags_conf.append(d)
|
|
1765
1766
|
r = TriccNodeRhombus(
|
|
1766
1767
|
id=generate_id(f"proposed-rhombus{proposed.id}"),
|
|
@@ -1782,7 +1783,7 @@ def create_determine_diagnosis_activity(diags):
|
|
|
1782
1783
|
# fallback
|
|
1783
1784
|
f = TriccNodeSelectMultiple(
|
|
1784
1785
|
name="tricc.manual.diag",
|
|
1785
|
-
label="Add
|
|
1786
|
+
label="Add diagnosis",
|
|
1786
1787
|
list_name='manual_diag',
|
|
1787
1788
|
id=generate_id("tricc.manual.diag"),
|
|
1788
1789
|
activity=activity,
|
|
@@ -2068,7 +2069,7 @@ def get_rhombus_terms( node, processed_nodes, is_calculate=False, negate=False,
|
|
|
2068
2069
|
exit(1)
|
|
2069
2070
|
|
|
2070
2071
|
if expression is not None:
|
|
2071
|
-
if isinstance(expression, TriccOperation):
|
|
2072
|
+
if isinstance(expression, (TriccOperation, TriccStatic)):
|
|
2072
2073
|
return expression
|
|
2073
2074
|
elif issubclass(expression.__class__ , TriccNodeCalculateBase):
|
|
2074
2075
|
return TriccOperation(
|
|
@@ -182,6 +182,7 @@ def get_task_js(form_id, calculate_name, title, form_types, hidden_names, df_sur
|
|
|
182
182
|
/* eslint-disable */
|
|
183
183
|
|
|
184
184
|
const {{injectDataFromForm, isFormArrayHasSourceId}} = require('./stph-extras');
|
|
185
|
+
const {{getField}} = require("./nools-extras");
|
|
185
186
|
|
|
186
187
|
const CASE_DATA = ['{"','".join(hidden_names)}'];
|
|
187
188
|
|
|
@@ -216,7 +217,9 @@ function {task_name}ResolveIf(contact, report, event, dueDate) {{
|
|
|
216
217
|
}}
|
|
217
218
|
|
|
218
219
|
function {task_name}AppliesIf(contact, report, event, dueDate) {{
|
|
219
|
-
|
|
220
|
+
return getField(report, "source_id") === "" &&
|
|
221
|
+
getField(report, "pause_test") === "1"
|
|
222
|
+
|
|
220
223
|
}}
|
|
221
224
|
|
|
222
225
|
module.exports = {{
|
|
@@ -247,6 +250,7 @@ module.exports = {{
|
|
|
247
250
|
// appliesTo: 'reports',
|
|
248
251
|
// appliesToType: {task_name_upper}_FORMS,
|
|
249
252
|
// appliesIf: {task_name}AppliesIf,
|
|
253
|
+
// contactLabel: {task_name}ContactLabel,
|
|
250
254
|
// actions: [
|
|
251
255
|
// {{
|
|
252
256
|
// type: 'report',
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|