[lucicfg] Make graph.add_edge idempotent.
Edge redeclaration errors were never useful (never seen it in the real
situations), but they complicate working with "idempotent" nodes (nodes that
are allowed to be added more than once without triggering a redeclaration
error).
In practical terms it means e.g. the following config is no longer erroneous:
luci.gitiles_poller(
...
triggers = [
'some builder',
'some builder', # duplicates are silently ignored
...
],
)
R=tandrii@chromium.org, nodir@chromium.org
BUG=833946
Change-Id: Ie102a487e4482555b59dfc5260bfda65c79125d6
Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/1526716
Commit-Queue: Vadim Shtayura <vadimsh@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
diff --git a/lucicfg/errors.go b/lucicfg/errors.go
index d05cede..0246187 100644
--- a/lucicfg/errors.go
+++ b/lucicfg/errors.go
@@ -37,7 +37,6 @@
_ BacktracableError = (*builtins.Failure)(nil)
_ BacktracableError = (*Error)(nil)
_ BacktracableError = (*graph.NodeRedeclarationError)(nil)
- _ BacktracableError = (*graph.EdgeRedeclarationError)(nil)
_ BacktracableError = (*graph.CycleError)(nil)
_ BacktracableError = (*graph.DanglingEdgeError)(nil)
)
diff --git a/lucicfg/graph/graph.go b/lucicfg/graph/graph.go
index a060398..3a4ca49 100644
--- a/lucicfg/graph/graph.go
+++ b/lucicfg/graph/graph.go
@@ -58,32 +58,6 @@
return backtrace(e, e.Trace)
}
-// EdgeRedeclarationError is returned when adding an edge that has exact same
-// end points and a title as some existing edge.
-//
-// Edges that link same nodes (in same direction) and differ only in title are
-// OK and do not cause this error.
-//
-// Nodes referenced by the edge may not be fully declared yet (i.e. they may not
-// yet have properties or trace associated with them). They do have valid keys
-// though.
-type EdgeRedeclarationError struct {
- Trace *builtins.CapturedStacktrace // where it is added second time
- Previous *Edge // the previously added edge
-}
-
-// Error is part of 'error' interface.
-func (e *EdgeRedeclarationError) Error() string {
- // TODO(vadimsh): Improve error messages.
- return fmt.Sprintf("relation %q between %s and %s is redeclared, previous declaration:\n%s",
- e.Previous.Title, e.Previous.Parent, e.Previous.Child, e.Previous.Trace)
-}
-
-// Backtrace returns an error message with a backtrace where it happened.
-func (e *EdgeRedeclarationError) Backtrace() string {
- return backtrace(e, e.Trace)
-}
-
// CycleError is returned when adding an edge that introduces a cycle.
//
// Nodes referenced by edges may not be fully declared yet (i.e. they may not
@@ -273,8 +247,10 @@
// in arbitrary order as long as at the end of the graph construction (when it
// is finalized) the graph is complete.
//
-// Returns an error if there's already an edge between the given nodes with
-// exact same title or the new edge introduces a cycle.
+// It is OK to add the same edge (with the same title) more than once. Only
+// the trace of the first definition is recorded.
+//
+// Returns an error if the new edge introduces a cycle.
func (g *Graph) AddEdge(parent, child *Key, title string, trace *builtins.CapturedStacktrace) error {
if g.finalized {
return ErrFinalized
@@ -293,13 +269,10 @@
Trace: trace,
}
- // Have this exact edge already?
+ // Have this exact edge already? This is fine.
for _, e := range edge.Parent.children {
if e.Child == edge.Child && e.Title == title {
- return &EdgeRedeclarationError{
- Trace: trace,
- Previous: e,
- }
+ return nil
}
}
diff --git a/lucicfg/graph/testdata/edge.star b/lucicfg/graph/testdata/edge.star
index 1603c95..c02362b 100644
--- a/lucicfg/graph/testdata/edge.star
+++ b/lucicfg/graph/testdata/edge.star
@@ -22,12 +22,9 @@
k2 = g.key('t1', 'id2')
g.add_edge(parent=k1, child=k2, title='blah')
-
- assert.fails(
- lambda: g.add_edge(parent=k1, child=k2, title='blah'),
- 'relation "blah" between .* is redeclared')
-
- # Using a different title is fine.
+ # Redeclaring is fine.
+ g.add_edge(parent=k1, child=k2, title='blah')
+ # Using a different title is fine too.
g.add_edge(parent=k1, child=k2, title='zzz')
test_edge_redeclaration()
diff --git a/lucicfg/starlark/assets.gen.go b/lucicfg/starlark/assets.gen.go
index d6e6a6a..5337cb5 100644
--- a/lucicfg/starlark/assets.gen.go
+++ b/lucicfg/starlark/assets.gen.go
@@ -708,340 +708,344 @@
101, 110, 32, 116, 104, 101, 10, 32, 32, 103, 114, 97, 112, 104,
32, 105, 115, 32, 102, 105, 110, 97, 108, 105, 122, 101, 100, 41,
32, 116, 104, 101, 32, 103, 114, 97, 112, 104, 32, 105, 115, 32,
- 99, 111, 109, 112, 108, 101, 116, 101, 46, 10, 10, 32, 32, 70,
- 97, 105, 108, 115, 32, 105, 102, 32, 116, 104, 101, 114, 101, 39,
- 115, 32, 97, 108, 114, 101, 97, 100, 121, 32, 97, 110, 32, 101,
- 100, 103, 101, 32, 98, 101, 116, 119, 101, 101, 110, 32, 116, 104,
- 101, 32, 103, 105, 118, 101, 110, 32, 110, 111, 100, 101, 115, 32,
- 119, 105, 116, 104, 32, 101, 120, 97, 99, 116, 32, 115, 97, 109,
- 101, 32, 116, 105, 116, 108, 101, 10, 32, 32, 111, 114, 32, 116,
- 104, 101, 32, 110, 101, 119, 32, 101, 100, 103, 101, 32, 105, 110,
- 116, 114, 111, 100, 117, 99, 101, 115, 32, 97, 32, 99, 121, 99,
- 108, 101, 46, 10, 10, 32, 32, 67, 97, 110, 32, 98, 101, 32,
- 117, 115, 101, 100, 32, 111, 110, 108, 121, 32, 102, 114, 111, 109,
- 32, 99, 111, 100, 101, 32, 116, 104, 97, 116, 32, 119, 97, 115,
- 32, 108, 111, 97, 100, 101, 100, 32, 118, 105, 97, 32, 115, 111,
- 109, 101, 32, 101, 120, 101, 99, 40, 46, 46, 46, 41, 46, 32,
- 70, 97, 105, 108, 115, 32, 105, 102, 32, 114, 117, 110, 10, 32,
- 32, 102, 114, 111, 109, 32, 97, 32, 109, 111, 100, 117, 108, 101,
- 32, 98, 101, 105, 110, 103, 32, 108, 111, 97, 100, 101, 100, 32,
- 118, 105, 97, 32, 108, 111, 97, 100, 40, 46, 46, 46, 41, 46,
- 32, 83, 117, 99, 104, 32, 108, 105, 98, 114, 97, 114, 121, 45,
- 108, 105, 107, 101, 32, 109, 111, 100, 117, 108, 101, 115, 32, 109,
- 117, 115, 116, 32, 110, 111, 116, 10, 32, 32, 104, 97, 118, 101,
- 32, 115, 105, 100, 101, 32, 101, 102, 102, 101, 99, 116, 115, 32,
- 100, 117, 114, 105, 110, 103, 32, 116, 104, 101, 105, 114, 32, 108,
- 111, 97, 100, 105, 110, 103, 46, 10, 10, 32, 32, 65, 108, 115,
- 111, 32, 102, 97, 105, 108, 115, 32, 105, 102, 32, 117, 115, 101,
- 100, 32, 102, 114, 111, 109, 32, 97, 32, 103, 101, 110, 101, 114,
- 97, 116, 111, 114, 32, 99, 97, 108, 108, 98, 97, 99, 107, 58,
- 32, 97, 116, 32, 116, 104, 105, 115, 32, 112, 111, 105, 110, 116,
- 32, 116, 104, 101, 32, 103, 114, 97, 112, 104, 32, 105, 115, 10,
- 32, 32, 102, 114, 111, 122, 101, 110, 32, 97, 110, 100, 32, 99,
- 97, 110, 39, 116, 32, 98, 101, 32, 101, 120, 116, 101, 110, 100,
- 101, 100, 46, 10, 10, 32, 32, 65, 114, 103, 115, 58, 10, 32,
- 32, 32, 32, 112, 97, 114, 101, 110, 116, 58, 32, 97, 32, 112,
- 97, 114, 101, 110, 116, 32, 110, 111, 100, 101, 32, 107, 101, 121,
- 44, 32, 115, 101, 101, 32, 103, 114, 97, 112, 104, 46, 107, 101,
- 121, 40, 46, 46, 46, 41, 46, 10, 32, 32, 32, 32, 99, 104,
- 105, 108, 100, 58, 32, 97, 32, 99, 104, 105, 108, 100, 32, 110,
- 111, 100, 101, 32, 107, 101, 121, 44, 32, 115, 101, 101, 32, 103,
- 114, 97, 112, 104, 46, 107, 101, 121, 40, 46, 46, 46, 41, 46,
- 10, 32, 32, 32, 32, 116, 105, 116, 108, 101, 58, 32, 97, 32,
- 116, 105, 116, 108, 101, 32, 102, 111, 114, 32, 116, 104, 101, 32,
- 101, 100, 103, 101, 44, 32, 117, 115, 101, 100, 32, 105, 110, 32,
- 101, 114, 114, 111, 114, 32, 109, 101, 115, 115, 97, 103, 101, 115,
- 46, 10, 32, 32, 32, 32, 116, 114, 97, 99, 101, 58, 32, 97,
- 32, 115, 116, 97, 99, 107, 32, 116, 114, 97, 99, 101, 32, 116,
- 111, 32, 97, 115, 115, 111, 99, 105, 97, 116, 101, 32, 119, 105,
- 116, 104, 32, 116, 104, 101, 32, 101, 100, 103, 101, 46, 10, 32,
- 32, 34, 34, 34, 10, 32, 32, 95, 99, 104, 101, 99, 107, 95,
- 105, 110, 116, 101, 114, 112, 114, 101, 116, 101, 114, 95, 99, 111,
- 110, 116, 101, 120, 116, 40, 41, 10, 32, 32, 95, 95, 110, 97,
- 116, 105, 118, 101, 95, 95, 46, 103, 114, 97, 112, 104, 40, 41,
- 46, 97, 100, 100, 95, 101, 100, 103, 101, 40, 10, 32, 32, 32,
- 32, 32, 32, 112, 97, 114, 101, 110, 116, 44, 32, 99, 104, 105,
- 108, 100, 44, 32, 116, 105, 116, 108, 101, 32, 111, 114, 32, 39,
- 39, 44, 32, 116, 114, 97, 99, 101, 32, 111, 114, 32, 115, 116,
- 97, 99, 107, 116, 114, 97, 99, 101, 40, 115, 107, 105, 112, 61,
- 49, 41, 41, 10, 10, 10, 100, 101, 102, 32, 95, 110, 111, 100,
- 101, 40, 107, 101, 121, 41, 58, 10, 32, 32, 34, 34, 34, 82,
- 101, 116, 117, 114, 110, 115, 32, 97, 32, 110, 111, 100, 101, 32,
- 98, 121, 32, 116, 104, 101, 32, 107, 101, 121, 32, 111, 114, 32,
- 78, 111, 110, 101, 32, 105, 102, 32, 116, 104, 101, 114, 101, 39,
- 115, 32, 110, 111, 32, 115, 117, 99, 104, 32, 110, 111, 100, 101,
- 46, 10, 10, 32, 32, 70, 97, 105, 108, 115, 32, 105, 102, 32,
- 99, 97, 108, 108, 101, 100, 32, 110, 111, 116, 32, 102, 114, 111,
- 109, 32, 97, 32, 103, 101, 110, 101, 114, 97, 116, 111, 114, 32,
- 99, 97, 108, 108, 98, 97, 99, 107, 58, 32, 97, 32, 103, 114,
- 97, 112, 104, 32, 117, 110, 100, 101, 114, 32, 99, 111, 110, 115,
- 116, 114, 117, 99, 116, 105, 111, 110, 10, 32, 32, 99, 97, 110,
- 39, 116, 32, 98, 101, 32, 113, 117, 101, 114, 105, 101, 100, 46,
- 10, 10, 32, 32, 65, 114, 103, 115, 58, 10, 32, 32, 32, 32,
- 107, 101, 121, 58, 32, 97, 32, 110, 111, 100, 101, 32, 107, 101,
+ 99, 111, 109, 112, 108, 101, 116, 101, 46, 10, 10, 32, 32, 73,
+ 116, 32, 105, 115, 32, 79, 75, 32, 116, 111, 32, 97, 100, 100,
+ 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 101, 100, 103, 101,
+ 32, 40, 119, 105, 116, 104, 32, 116, 104, 101, 32, 115, 97, 109,
+ 101, 32, 116, 105, 116, 108, 101, 41, 32, 109, 111, 114, 101, 32,
+ 116, 104, 97, 110, 32, 111, 110, 99, 101, 46, 32, 79, 110, 108,
+ 121, 10, 32, 32, 116, 104, 101, 32, 116, 114, 97, 99, 101, 32,
+ 111, 102, 32, 116, 104, 101, 32, 102, 105, 114, 115, 116, 32, 100,
+ 101, 102, 105, 110, 105, 116, 105, 111, 110, 32, 105, 115, 32, 114,
+ 101, 99, 111, 114, 100, 101, 100, 46, 10, 10, 32, 32, 70, 97,
+ 105, 108, 115, 32, 105, 102, 32, 116, 104, 101, 32, 110, 101, 119,
+ 32, 101, 100, 103, 101, 32, 105, 110, 116, 114, 111, 100, 117, 99,
+ 101, 115, 32, 97, 32, 99, 121, 99, 108, 101, 46, 10, 10, 32,
+ 32, 67, 97, 110, 32, 98, 101, 32, 117, 115, 101, 100, 32, 111,
+ 110, 108, 121, 32, 102, 114, 111, 109, 32, 99, 111, 100, 101, 32,
+ 116, 104, 97, 116, 32, 119, 97, 115, 32, 108, 111, 97, 100, 101,
+ 100, 32, 118, 105, 97, 32, 115, 111, 109, 101, 32, 101, 120, 101,
+ 99, 40, 46, 46, 46, 41, 46, 32, 70, 97, 105, 108, 115, 32,
+ 105, 102, 32, 114, 117, 110, 10, 32, 32, 102, 114, 111, 109, 32,
+ 97, 32, 109, 111, 100, 117, 108, 101, 32, 98, 101, 105, 110, 103,
+ 32, 108, 111, 97, 100, 101, 100, 32, 118, 105, 97, 32, 108, 111,
+ 97, 100, 40, 46, 46, 46, 41, 46, 32, 83, 117, 99, 104, 32,
+ 108, 105, 98, 114, 97, 114, 121, 45, 108, 105, 107, 101, 32, 109,
+ 111, 100, 117, 108, 101, 115, 32, 109, 117, 115, 116, 32, 110, 111,
+ 116, 10, 32, 32, 104, 97, 118, 101, 32, 115, 105, 100, 101, 32,
+ 101, 102, 102, 101, 99, 116, 115, 32, 100, 117, 114, 105, 110, 103,
+ 32, 116, 104, 101, 105, 114, 32, 108, 111, 97, 100, 105, 110, 103,
+ 46, 10, 10, 32, 32, 65, 108, 115, 111, 32, 102, 97, 105, 108,
+ 115, 32, 105, 102, 32, 117, 115, 101, 100, 32, 102, 114, 111, 109,
+ 32, 97, 32, 103, 101, 110, 101, 114, 97, 116, 111, 114, 32, 99,
+ 97, 108, 108, 98, 97, 99, 107, 58, 32, 97, 116, 32, 116, 104,
+ 105, 115, 32, 112, 111, 105, 110, 116, 32, 116, 104, 101, 32, 103,
+ 114, 97, 112, 104, 32, 105, 115, 10, 32, 32, 102, 114, 111, 122,
+ 101, 110, 32, 97, 110, 100, 32, 99, 97, 110, 39, 116, 32, 98,
+ 101, 32, 101, 120, 116, 101, 110, 100, 101, 100, 46, 10, 10, 32,
+ 32, 65, 114, 103, 115, 58, 10, 32, 32, 32, 32, 112, 97, 114,
+ 101, 110, 116, 58, 32, 97, 32, 112, 97, 114, 101, 110, 116, 32,
+ 110, 111, 100, 101, 32, 107, 101, 121, 44, 32, 115, 101, 101, 32,
+ 103, 114, 97, 112, 104, 46, 107, 101, 121, 40, 46, 46, 46, 41,
+ 46, 10, 32, 32, 32, 32, 99, 104, 105, 108, 100, 58, 32, 97,
+ 32, 99, 104, 105, 108, 100, 32, 110, 111, 100, 101, 32, 107, 101,
121, 44, 32, 115, 101, 101, 32, 103, 114, 97, 112, 104, 46, 107,
- 101, 121, 40, 46, 46, 46, 41, 46, 10, 10, 32, 32, 82, 101,
- 116, 117, 114, 110, 115, 58, 10, 32, 32, 32, 32, 103, 114, 97,
- 112, 104, 46, 110, 111, 100, 101, 32, 111, 98, 106, 101, 99, 116,
- 32, 114, 101, 112, 114, 101, 115, 101, 110, 116, 105, 110, 103, 32,
- 116, 104, 101, 32, 110, 111, 100, 101, 46, 10, 32, 32, 34, 34,
- 34, 10, 32, 32, 114, 101, 116, 117, 114, 110, 32, 95, 95, 110,
- 97, 116, 105, 118, 101, 95, 95, 46, 103, 114, 97, 112, 104, 40,
- 41, 46, 110, 111, 100, 101, 40, 107, 101, 121, 41, 10, 10, 10,
- 100, 101, 102, 32, 95, 99, 104, 105, 108, 100, 114, 101, 110, 40,
- 112, 97, 114, 101, 110, 116, 44, 32, 107, 105, 110, 100, 61, 78,
- 111, 110, 101, 44, 32, 111, 114, 100, 101, 114, 95, 98, 121, 61,
- 95, 75, 69, 89, 95, 79, 82, 68, 69, 82, 41, 58, 10, 32,
- 32, 34, 34, 34, 82, 101, 116, 117, 114, 110, 115, 32, 100, 105,
- 114, 101, 99, 116, 32, 99, 104, 105, 108, 100, 114, 101, 110, 32,
- 111, 102, 32, 97, 32, 110, 111, 100, 101, 32, 40, 103, 105, 118,
- 101, 110, 32, 98, 121, 32, 105, 116, 115, 32, 107, 101, 121, 41,
- 44, 32, 111, 112, 116, 105, 111, 110, 97, 108, 108, 121, 32, 102,
- 105, 108, 116, 101, 114, 105, 110, 103, 10, 32, 32, 116, 104, 101,
- 109, 32, 98, 121, 32, 107, 105, 110, 100, 46, 10, 10, 32, 32,
- 68, 101, 112, 101, 110, 100, 105, 110, 103, 32, 111, 110, 32, 39,
- 111, 114, 100, 101, 114, 95, 98, 121, 39, 44, 32, 116, 104, 101,
- 32, 99, 104, 105, 108, 100, 114, 101, 110, 32, 97, 114, 101, 32,
- 101, 105, 116, 104, 101, 114, 32, 111, 114, 100, 101, 114, 101, 100,
- 32, 108, 101, 120, 105, 99, 111, 103, 114, 97, 112, 104, 105, 99,
- 97, 108, 108, 121, 32, 98, 121, 10, 32, 32, 116, 104, 101, 105,
- 114, 32, 107, 101, 121, 115, 32, 111, 114, 32, 98, 121, 32, 116,
- 104, 101, 32, 111, 114, 100, 101, 114, 32, 101, 100, 103, 101, 115,
- 32, 116, 111, 32, 116, 104, 101, 109, 32, 119, 101, 114, 101, 32,
- 100, 101, 102, 105, 110, 101, 100, 46, 10, 10, 32, 32, 70, 97,
- 105, 108, 115, 32, 105, 102, 32, 99, 97, 108, 108, 101, 100, 32,
- 110, 111, 116, 32, 102, 114, 111, 109, 32, 97, 32, 103, 101, 110,
- 101, 114, 97, 116, 111, 114, 32, 99, 97, 108, 108, 98, 97, 99,
- 107, 58, 32, 97, 32, 103, 114, 97, 112, 104, 32, 117, 110, 100,
- 101, 114, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 105, 111,
- 110, 10, 32, 32, 99, 97, 110, 39, 116, 32, 98, 101, 32, 113,
- 117, 101, 114, 105, 101, 100, 46, 10, 10, 32, 32, 65, 114, 103,
- 115, 58, 10, 32, 32, 32, 32, 112, 97, 114, 101, 110, 116, 58,
- 32, 97, 32, 107, 101, 121, 32, 111, 102, 32, 116, 104, 101, 32,
- 112, 97, 114, 101, 110, 116, 32, 110, 111, 100, 101, 44, 32, 115,
- 101, 101, 32, 103, 114, 97, 112, 104, 46, 107, 101, 121, 40, 46,
- 46, 46, 41, 46, 10, 32, 32, 32, 32, 107, 105, 110, 100, 58,
- 32, 97, 32, 115, 116, 114, 105, 110, 103, 32, 119, 105, 116, 104,
- 32, 97, 32, 107, 105, 110, 100, 32, 111, 102, 32, 99, 104, 105,
- 108, 100, 114, 101, 110, 32, 116, 111, 32, 114, 101, 116, 117, 114,
- 110, 32, 111, 114, 32, 78, 111, 110, 101, 32, 102, 111, 114, 32,
- 97, 108, 108, 46, 10, 32, 32, 32, 32, 111, 114, 100, 101, 114,
- 95, 98, 121, 58, 32, 101, 105, 116, 104, 101, 114, 32, 75, 69,
- 89, 95, 79, 82, 68, 69, 82, 32, 111, 114, 32, 68, 69, 70,
- 73, 78, 73, 84, 73, 79, 78, 95, 79, 82, 68, 69, 82, 44,
- 32, 100, 101, 102, 97, 117, 108, 116, 32, 75, 69, 89, 95, 79,
- 82, 68, 69, 82, 46, 10, 10, 32, 32, 82, 101, 116, 117, 114,
- 110, 115, 58, 10, 32, 32, 32, 32, 76, 105, 115, 116, 32, 111,
- 102, 32, 103, 114, 97, 112, 104, 46, 110, 111, 100, 101, 32, 111,
- 98, 106, 101, 99, 116, 115, 46, 10, 32, 32, 34, 34, 34, 10,
- 32, 32, 111, 117, 116, 32, 61, 32, 95, 95, 110, 97, 116, 105,
- 118, 101, 95, 95, 46, 103, 114, 97, 112, 104, 40, 41, 46, 99,
+ 101, 121, 40, 46, 46, 46, 41, 46, 10, 32, 32, 32, 32, 116,
+ 105, 116, 108, 101, 58, 32, 97, 32, 116, 105, 116, 108, 101, 32,
+ 102, 111, 114, 32, 116, 104, 101, 32, 101, 100, 103, 101, 44, 32,
+ 117, 115, 101, 100, 32, 105, 110, 32, 101, 114, 114, 111, 114, 32,
+ 109, 101, 115, 115, 97, 103, 101, 115, 46, 10, 32, 32, 32, 32,
+ 116, 114, 97, 99, 101, 58, 32, 97, 32, 115, 116, 97, 99, 107,
+ 32, 116, 114, 97, 99, 101, 32, 116, 111, 32, 97, 115, 115, 111,
+ 99, 105, 97, 116, 101, 32, 119, 105, 116, 104, 32, 116, 104, 101,
+ 32, 101, 100, 103, 101, 46, 10, 32, 32, 34, 34, 34, 10, 32,
+ 32, 95, 99, 104, 101, 99, 107, 95, 105, 110, 116, 101, 114, 112,
+ 114, 101, 116, 101, 114, 95, 99, 111, 110, 116, 101, 120, 116, 40,
+ 41, 10, 32, 32, 95, 95, 110, 97, 116, 105, 118, 101, 95, 95,
+ 46, 103, 114, 97, 112, 104, 40, 41, 46, 97, 100, 100, 95, 101,
+ 100, 103, 101, 40, 10, 32, 32, 32, 32, 32, 32, 112, 97, 114,
+ 101, 110, 116, 44, 32, 99, 104, 105, 108, 100, 44, 32, 116, 105,
+ 116, 108, 101, 32, 111, 114, 32, 39, 39, 44, 32, 116, 114, 97,
+ 99, 101, 32, 111, 114, 32, 115, 116, 97, 99, 107, 116, 114, 97,
+ 99, 101, 40, 115, 107, 105, 112, 61, 49, 41, 41, 10, 10, 10,
+ 100, 101, 102, 32, 95, 110, 111, 100, 101, 40, 107, 101, 121, 41,
+ 58, 10, 32, 32, 34, 34, 34, 82, 101, 116, 117, 114, 110, 115,
+ 32, 97, 32, 110, 111, 100, 101, 32, 98, 121, 32, 116, 104, 101,
+ 32, 107, 101, 121, 32, 111, 114, 32, 78, 111, 110, 101, 32, 105,
+ 102, 32, 116, 104, 101, 114, 101, 39, 115, 32, 110, 111, 32, 115,
+ 117, 99, 104, 32, 110, 111, 100, 101, 46, 10, 10, 32, 32, 70,
+ 97, 105, 108, 115, 32, 105, 102, 32, 99, 97, 108, 108, 101, 100,
+ 32, 110, 111, 116, 32, 102, 114, 111, 109, 32, 97, 32, 103, 101,
+ 110, 101, 114, 97, 116, 111, 114, 32, 99, 97, 108, 108, 98, 97,
+ 99, 107, 58, 32, 97, 32, 103, 114, 97, 112, 104, 32, 117, 110,
+ 100, 101, 114, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 105,
+ 111, 110, 10, 32, 32, 99, 97, 110, 39, 116, 32, 98, 101, 32,
+ 113, 117, 101, 114, 105, 101, 100, 46, 10, 10, 32, 32, 65, 114,
+ 103, 115, 58, 10, 32, 32, 32, 32, 107, 101, 121, 58, 32, 97,
+ 32, 110, 111, 100, 101, 32, 107, 101, 121, 44, 32, 115, 101, 101,
+ 32, 103, 114, 97, 112, 104, 46, 107, 101, 121, 40, 46, 46, 46,
+ 41, 46, 10, 10, 32, 32, 82, 101, 116, 117, 114, 110, 115, 58,
+ 10, 32, 32, 32, 32, 103, 114, 97, 112, 104, 46, 110, 111, 100,
+ 101, 32, 111, 98, 106, 101, 99, 116, 32, 114, 101, 112, 114, 101,
+ 115, 101, 110, 116, 105, 110, 103, 32, 116, 104, 101, 32, 110, 111,
+ 100, 101, 46, 10, 32, 32, 34, 34, 34, 10, 32, 32, 114, 101,
+ 116, 117, 114, 110, 32, 95, 95, 110, 97, 116, 105, 118, 101, 95,
+ 95, 46, 103, 114, 97, 112, 104, 40, 41, 46, 110, 111, 100, 101,
+ 40, 107, 101, 121, 41, 10, 10, 10, 100, 101, 102, 32, 95, 99,
104, 105, 108, 100, 114, 101, 110, 40, 112, 97, 114, 101, 110, 116,
- 44, 32, 111, 114, 100, 101, 114, 95, 98, 121, 41, 10, 32, 32,
- 105, 102, 32, 107, 105, 110, 100, 58, 10, 32, 32, 32, 32, 114,
- 101, 116, 117, 114, 110, 32, 91, 110, 32, 102, 111, 114, 32, 110,
- 32, 105, 110, 32, 111, 117, 116, 32, 105, 102, 32, 110, 46, 107,
- 101, 121, 46, 107, 105, 110, 100, 32, 61, 61, 32, 107, 105, 110,
- 100, 93, 10, 32, 32, 114, 101, 116, 117, 114, 110, 32, 111, 117,
- 116, 10, 10, 10, 100, 101, 102, 32, 95, 100, 101, 115, 99, 101,
- 110, 100, 97, 110, 116, 115, 40, 114, 111, 111, 116, 44, 32, 118,
- 105, 115, 105, 116, 111, 114, 61, 78, 111, 110, 101, 44, 32, 111,
+ 44, 32, 107, 105, 110, 100, 61, 78, 111, 110, 101, 44, 32, 111,
114, 100, 101, 114, 95, 98, 121, 61, 95, 75, 69, 89, 95, 79,
82, 68, 69, 82, 41, 58, 10, 32, 32, 34, 34, 34, 82, 101,
- 99, 117, 114, 115, 105, 118, 101, 108, 121, 32, 118, 105, 115, 105,
- 116, 115, 32, 39, 114, 111, 111, 116, 39, 32, 40, 103, 105, 118,
- 101, 110, 32, 98, 121, 32, 105, 116, 115, 32, 107, 101, 121, 41,
- 32, 97, 110, 100, 32, 97, 108, 108, 32, 105, 116, 115, 32, 99,
- 104, 105, 108, 100, 114, 101, 110, 44, 32, 105, 110, 10, 32, 32,
- 98, 114, 101, 97, 100, 116, 104, 32, 102, 105, 114, 115, 116, 32,
- 111, 114, 100, 101, 114, 44, 32, 111, 114, 100, 101, 114, 105, 110,
- 103, 32, 101, 100, 103, 101, 115, 32, 98, 121, 32, 39, 111, 114,
- 100, 101, 114, 95, 98, 121, 39, 46, 10, 10, 32, 32, 82, 101,
- 116, 117, 114, 110, 115, 32, 116, 104, 101, 32, 108, 105, 115, 116,
- 32, 111, 102, 32, 97, 108, 108, 32, 118, 105, 115, 105, 116, 101,
- 100, 32, 110, 111, 100, 101, 115, 44, 32, 105, 110, 32, 111, 114,
- 100, 101, 114, 32, 116, 104, 101, 121, 32, 119, 101, 114, 101, 32,
- 118, 105, 115, 105, 116, 101, 100, 46, 32, 70, 97, 105, 108, 115,
- 32, 105, 102, 10, 32, 32, 99, 97, 108, 108, 101, 100, 32, 110,
- 111, 116, 32, 102, 114, 111, 109, 32, 97, 32, 103, 101, 110, 101,
- 114, 97, 116, 111, 114, 32, 99, 97, 108, 108, 98, 97, 99, 107,
- 58, 32, 97, 32, 103, 114, 97, 112, 104, 32, 117, 110, 100, 101,
- 114, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 105, 111, 110,
- 32, 99, 97, 110, 39, 116, 32, 98, 101, 10, 32, 32, 113, 117,
- 101, 114, 105, 101, 100, 46, 10, 10, 32, 32, 69, 97, 99, 104,
- 32, 110, 111, 100, 101, 32, 105, 115, 32, 118, 105, 115, 105, 116,
- 101, 100, 32, 111, 110, 108, 121, 32, 111, 110, 99, 101, 44, 32,
- 101, 118, 101, 110, 32, 105, 102, 32, 105, 116, 32, 105, 115, 32,
- 114, 101, 97, 99, 104, 97, 98, 108, 101, 32, 116, 104, 114, 111,
- 117, 103, 104, 32, 109, 117, 108, 116, 105, 112, 108, 101, 10, 32,
- 32, 112, 97, 116, 104, 115, 46, 32, 78, 111, 116, 101, 32, 116,
- 104, 97, 116, 32, 116, 104, 101, 32, 103, 114, 97, 112, 104, 32,
- 104, 97, 115, 32, 110, 111, 32, 99, 121, 99, 108, 101, 115, 32,
- 40, 98, 121, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 105,
- 111, 110, 41, 46, 10, 10, 32, 32, 84, 104, 101, 32, 118, 105,
- 115, 105, 116, 111, 114, 32, 99, 97, 108, 108, 98, 97, 99, 107,
- 32, 40, 105, 102, 32, 110, 111, 116, 32, 78, 111, 110, 101, 41,
- 32, 105, 115, 32, 99, 97, 108, 108, 101, 100, 32, 102, 111, 114,
- 32, 101, 97, 99, 104, 32, 118, 105, 115, 105, 116, 101, 100, 32,
- 110, 111, 100, 101, 46, 32, 73, 116, 32, 100, 101, 99, 105, 100,
- 101, 115, 10, 32, 32, 119, 104, 97, 116, 32, 99, 104, 105, 108,
- 100, 114, 101, 110, 32, 116, 111, 32, 118, 105, 115, 105, 116, 32,
- 110, 101, 120, 116, 46, 32, 84, 104, 101, 32, 99, 97, 108, 108,
- 98, 97, 99, 107, 32, 97, 108, 119, 97, 121, 115, 32, 115, 101,
- 101, 115, 32, 97, 108, 108, 32, 99, 104, 105, 108, 100, 114, 101,
- 110, 32, 111, 102, 32, 116, 104, 101, 10, 32, 32, 110, 111, 100,
- 101, 44, 32, 101, 118, 101, 110, 32, 105, 102, 32, 115, 111, 109,
- 101, 32, 111, 102, 32, 116, 104, 101, 109, 32, 40, 111, 114, 32,
- 97, 108, 108, 41, 32, 104, 97, 118, 101, 32, 97, 108, 114, 101,
- 97, 100, 121, 32, 98, 101, 101, 110, 32, 118, 105, 115, 105, 116,
- 101, 100, 46, 32, 86, 105, 115, 105, 116, 101, 100, 32, 110, 111,
- 100, 101, 115, 10, 32, 32, 119, 105, 108, 108, 32, 98, 101, 32,
- 115, 107, 105, 112, 112, 101, 100, 32, 101, 118, 101, 110, 32, 105,
- 102, 32, 116, 104, 101, 32, 118, 105, 115, 105, 116, 111, 114, 32,
- 114, 101, 116, 117, 114, 110, 115, 32, 116, 104, 101, 109, 46, 10,
- 10, 32, 32, 65, 114, 103, 115, 58, 10, 32, 32, 32, 32, 114,
- 111, 111, 116, 58, 32, 97, 32, 107, 101, 121, 32, 111, 102, 32,
- 116, 104, 101, 32, 110, 111, 100, 101, 32, 116, 111, 32, 115, 116,
- 97, 114, 116, 32, 116, 104, 101, 32, 116, 114, 97, 118, 101, 114,
- 115, 97, 108, 32, 102, 114, 111, 109, 44, 32, 115, 101, 101, 32,
- 103, 114, 97, 112, 104, 46, 107, 101, 121, 40, 46, 46, 46, 41,
- 46, 10, 32, 32, 32, 32, 118, 105, 115, 105, 116, 111, 114, 58,
- 32, 102, 117, 110, 99, 40, 110, 111, 100, 101, 58, 32, 103, 114,
- 97, 112, 104, 46, 110, 111, 100, 101, 44, 32, 99, 104, 105, 108,
- 100, 114, 101, 110, 58, 32, 91, 93, 103, 114, 97, 112, 104, 46,
- 110, 111, 100, 101, 41, 58, 32, 91, 93, 103, 114, 97, 112, 104,
- 46, 110, 111, 100, 101, 46, 10, 32, 32, 32, 32, 111, 114, 100,
- 101, 114, 95, 98, 121, 58, 32, 101, 105, 116, 104, 101, 114, 32,
- 75, 69, 89, 95, 79, 82, 68, 69, 82, 32, 111, 114, 32, 68,
- 69, 70, 73, 78, 73, 84, 73, 79, 78, 95, 79, 82, 68, 69,
- 82, 44, 32, 100, 101, 102, 97, 117, 108, 116, 32, 75, 69, 89,
- 95, 79, 82, 68, 69, 82, 46, 10, 10, 32, 32, 82, 101, 116,
- 117, 114, 110, 115, 58, 10, 32, 32, 32, 32, 76, 105, 115, 116,
- 32, 111, 102, 32, 118, 105, 115, 105, 116, 101, 100, 32, 103, 114,
- 97, 112, 104, 46, 110, 111, 100, 101, 32, 111, 98, 106, 101, 99,
- 116, 115, 44, 32, 115, 116, 97, 114, 116, 105, 110, 103, 32, 119,
- 105, 116, 104, 32, 116, 104, 101, 32, 114, 111, 111, 116, 46, 10,
- 32, 32, 34, 34, 34, 10, 32, 32, 114, 101, 116, 117, 114, 110,
- 32, 95, 95, 110, 97, 116, 105, 118, 101, 95, 95, 46, 103, 114,
- 97, 112, 104, 40, 41, 46, 100, 101, 115, 99, 101, 110, 100, 97,
- 110, 116, 115, 40, 114, 111, 111, 116, 44, 32, 118, 105, 115, 105,
- 116, 111, 114, 44, 32, 111, 114, 100, 101, 114, 95, 98, 121, 41,
- 10, 10, 10, 100, 101, 102, 32, 95, 112, 97, 114, 101, 110, 116,
- 115, 40, 99, 104, 105, 108, 100, 44, 32, 107, 105, 110, 100, 61,
- 78, 111, 110, 101, 44, 32, 111, 114, 100, 101, 114, 95, 98, 121,
- 61, 95, 75, 69, 89, 95, 79, 82, 68, 69, 82, 41, 58, 10,
- 32, 32, 34, 34, 34, 82, 101, 116, 117, 114, 110, 115, 32, 100,
- 105, 114, 101, 99, 116, 32, 112, 97, 114, 101, 110, 116, 115, 32,
- 111, 102, 32, 97, 32, 110, 111, 100, 101, 32, 40, 103, 105, 118,
- 101, 110, 32, 98, 121, 32, 105, 116, 115, 32, 107, 101, 121, 41,
- 44, 32, 111, 112, 116, 105, 111, 110, 97, 108, 108, 121, 32, 102,
- 105, 108, 116, 101, 114, 105, 110, 103, 10, 32, 32, 116, 104, 101,
- 109, 32, 98, 121, 32, 107, 105, 110, 100, 46, 10, 10, 32, 32,
- 68, 101, 112, 101, 110, 100, 105, 110, 103, 32, 111, 110, 32, 39,
- 111, 114, 100, 101, 114, 95, 98, 121, 39, 44, 32, 116, 104, 101,
- 32, 112, 97, 114, 101, 110, 116, 115, 32, 97, 114, 101, 32, 101,
- 105, 116, 104, 101, 114, 32, 111, 114, 100, 101, 114, 101, 100, 32,
- 108, 101, 120, 105, 99, 111, 103, 114, 97, 112, 104, 105, 99, 97,
- 108, 108, 121, 32, 98, 121, 10, 32, 32, 116, 104, 101, 105, 114,
- 32, 107, 101, 121, 32, 111, 114, 32, 98, 121, 32, 116, 104, 101,
- 32, 111, 114, 100, 101, 114, 32, 101, 100, 103, 101, 115, 32, 102,
- 114, 111, 109, 32, 116, 104, 101, 109, 32, 119, 101, 114, 101, 32,
- 100, 101, 102, 105, 110, 101, 100, 46, 10, 10, 32, 32, 70, 97,
- 105, 108, 115, 32, 105, 102, 32, 99, 97, 108, 108, 101, 100, 32,
- 110, 111, 116, 32, 102, 114, 111, 109, 32, 97, 32, 103, 101, 110,
- 101, 114, 97, 116, 111, 114, 32, 99, 97, 108, 108, 98, 97, 99,
- 107, 58, 32, 97, 32, 103, 114, 97, 112, 104, 32, 117, 110, 100,
- 101, 114, 32, 99, 111, 110, 115, 116, 114, 117, 99, 116, 105, 111,
- 110, 10, 32, 32, 99, 97, 110, 39, 116, 32, 98, 101, 32, 113,
- 117, 101, 114, 105, 101, 100, 46, 10, 10, 32, 32, 65, 114, 103,
- 115, 58, 10, 32, 32, 32, 32, 99, 104, 105, 108, 100, 58, 32,
- 97, 32, 107, 101, 121, 32, 111, 102, 32, 116, 104, 101, 32, 110,
- 111, 100, 101, 32, 116, 111, 32, 102, 105, 110, 100, 32, 112, 97,
- 114, 101, 110, 116, 115, 32, 111, 102, 44, 32, 115, 101, 101, 32,
- 103, 114, 97, 112, 104, 46, 107, 101, 121, 40, 46, 46, 46, 41,
- 46, 10, 32, 32, 32, 32, 107, 105, 110, 100, 58, 32, 97, 32,
- 115, 116, 114, 105, 110, 103, 32, 119, 105, 116, 104, 32, 97, 32,
- 107, 105, 110, 100, 32, 111, 102, 32, 112, 97, 114, 101, 110, 116,
- 115, 32, 116, 111, 32, 114, 101, 116, 117, 114, 110, 32, 111, 114,
- 32, 78, 111, 110, 101, 32, 102, 111, 114, 32, 97, 108, 108, 46,
- 10, 32, 32, 32, 32, 111, 114, 100, 101, 114, 95, 98, 121, 58,
- 32, 101, 105, 116, 104, 101, 114, 32, 75, 69, 89, 95, 79, 82,
- 68, 69, 82, 32, 111, 114, 32, 68, 69, 70, 73, 78, 73, 84,
- 73, 79, 78, 95, 79, 82, 68, 69, 82, 44, 32, 100, 101, 102,
- 97, 117, 108, 116, 32, 75, 69, 89, 95, 79, 82, 68, 69, 82,
- 46, 10, 10, 32, 32, 82, 101, 116, 117, 114, 110, 115, 58, 10,
- 32, 32, 32, 32, 76, 105, 115, 116, 32, 111, 102, 32, 103, 114,
- 97, 112, 104, 46, 110, 111, 100, 101, 32, 111, 98, 106, 101, 99,
- 116, 115, 46, 10, 32, 32, 34, 34, 34, 10, 32, 32, 111, 117,
- 116, 32, 61, 32, 95, 95, 110, 97, 116, 105, 118, 101, 95, 95,
- 46, 103, 114, 97, 112, 104, 40, 41, 46, 112, 97, 114, 101, 110,
- 116, 115, 40, 99, 104, 105, 108, 100, 44, 32, 111, 114, 100, 101,
+ 116, 117, 114, 110, 115, 32, 100, 105, 114, 101, 99, 116, 32, 99,
+ 104, 105, 108, 100, 114, 101, 110, 32, 111, 102, 32, 97, 32, 110,
+ 111, 100, 101, 32, 40, 103, 105, 118, 101, 110, 32, 98, 121, 32,
+ 105, 116, 115, 32, 107, 101, 121, 41, 44, 32, 111, 112, 116, 105,
+ 111, 110, 97, 108, 108, 121, 32, 102, 105, 108, 116, 101, 114, 105,
+ 110, 103, 10, 32, 32, 116, 104, 101, 109, 32, 98, 121, 32, 107,
+ 105, 110, 100, 46, 10, 10, 32, 32, 68, 101, 112, 101, 110, 100,
+ 105, 110, 103, 32, 111, 110, 32, 39, 111, 114, 100, 101, 114, 95,
+ 98, 121, 39, 44, 32, 116, 104, 101, 32, 99, 104, 105, 108, 100,
+ 114, 101, 110, 32, 97, 114, 101, 32, 101, 105, 116, 104, 101, 114,
+ 32, 111, 114, 100, 101, 114, 101, 100, 32, 108, 101, 120, 105, 99,
+ 111, 103, 114, 97, 112, 104, 105, 99, 97, 108, 108, 121, 32, 98,
+ 121, 10, 32, 32, 116, 104, 101, 105, 114, 32, 107, 101, 121, 115,
+ 32, 111, 114, 32, 98, 121, 32, 116, 104, 101, 32, 111, 114, 100,
+ 101, 114, 32, 101, 100, 103, 101, 115, 32, 116, 111, 32, 116, 104,
+ 101, 109, 32, 119, 101, 114, 101, 32, 100, 101, 102, 105, 110, 101,
+ 100, 46, 10, 10, 32, 32, 70, 97, 105, 108, 115, 32, 105, 102,
+ 32, 99, 97, 108, 108, 101, 100, 32, 110, 111, 116, 32, 102, 114,
+ 111, 109, 32, 97, 32, 103, 101, 110, 101, 114, 97, 116, 111, 114,
+ 32, 99, 97, 108, 108, 98, 97, 99, 107, 58, 32, 97, 32, 103,
+ 114, 97, 112, 104, 32, 117, 110, 100, 101, 114, 32, 99, 111, 110,
+ 115, 116, 114, 117, 99, 116, 105, 111, 110, 10, 32, 32, 99, 97,
+ 110, 39, 116, 32, 98, 101, 32, 113, 117, 101, 114, 105, 101, 100,
+ 46, 10, 10, 32, 32, 65, 114, 103, 115, 58, 10, 32, 32, 32,
+ 32, 112, 97, 114, 101, 110, 116, 58, 32, 97, 32, 107, 101, 121,
+ 32, 111, 102, 32, 116, 104, 101, 32, 112, 97, 114, 101, 110, 116,
+ 32, 110, 111, 100, 101, 44, 32, 115, 101, 101, 32, 103, 114, 97,
+ 112, 104, 46, 107, 101, 121, 40, 46, 46, 46, 41, 46, 10, 32,
+ 32, 32, 32, 107, 105, 110, 100, 58, 32, 97, 32, 115, 116, 114,
+ 105, 110, 103, 32, 119, 105, 116, 104, 32, 97, 32, 107, 105, 110,
+ 100, 32, 111, 102, 32, 99, 104, 105, 108, 100, 114, 101, 110, 32,
+ 116, 111, 32, 114, 101, 116, 117, 114, 110, 32, 111, 114, 32, 78,
+ 111, 110, 101, 32, 102, 111, 114, 32, 97, 108, 108, 46, 10, 32,
+ 32, 32, 32, 111, 114, 100, 101, 114, 95, 98, 121, 58, 32, 101,
+ 105, 116, 104, 101, 114, 32, 75, 69, 89, 95, 79, 82, 68, 69,
+ 82, 32, 111, 114, 32, 68, 69, 70, 73, 78, 73, 84, 73, 79,
+ 78, 95, 79, 82, 68, 69, 82, 44, 32, 100, 101, 102, 97, 117,
+ 108, 116, 32, 75, 69, 89, 95, 79, 82, 68, 69, 82, 46, 10,
+ 10, 32, 32, 82, 101, 116, 117, 114, 110, 115, 58, 10, 32, 32,
+ 32, 32, 76, 105, 115, 116, 32, 111, 102, 32, 103, 114, 97, 112,
+ 104, 46, 110, 111, 100, 101, 32, 111, 98, 106, 101, 99, 116, 115,
+ 46, 10, 32, 32, 34, 34, 34, 10, 32, 32, 111, 117, 116, 32,
+ 61, 32, 95, 95, 110, 97, 116, 105, 118, 101, 95, 95, 46, 103,
+ 114, 97, 112, 104, 40, 41, 46, 99, 104, 105, 108, 100, 114, 101,
+ 110, 40, 112, 97, 114, 101, 110, 116, 44, 32, 111, 114, 100, 101,
114, 95, 98, 121, 41, 10, 32, 32, 105, 102, 32, 107, 105, 110,
100, 58, 10, 32, 32, 32, 32, 114, 101, 116, 117, 114, 110, 32,
91, 110, 32, 102, 111, 114, 32, 110, 32, 105, 110, 32, 111, 117,
116, 32, 105, 102, 32, 110, 46, 107, 101, 121, 46, 107, 105, 110,
100, 32, 61, 61, 32, 107, 105, 110, 100, 93, 10, 32, 32, 114,
101, 116, 117, 114, 110, 32, 111, 117, 116, 10, 10, 10, 100, 101,
- 102, 32, 95, 115, 111, 114, 116, 101, 100, 95, 110, 111, 100, 101,
+ 102, 32, 95, 100, 101, 115, 99, 101, 110, 100, 97, 110, 116, 115,
+ 40, 114, 111, 111, 116, 44, 32, 118, 105, 115, 105, 116, 111, 114,
+ 61, 78, 111, 110, 101, 44, 32, 111, 114, 100, 101, 114, 95, 98,
+ 121, 61, 95, 75, 69, 89, 95, 79, 82, 68, 69, 82, 41, 58,
+ 10, 32, 32, 34, 34, 34, 82, 101, 99, 117, 114, 115, 105, 118,
+ 101, 108, 121, 32, 118, 105, 115, 105, 116, 115, 32, 39, 114, 111,
+ 111, 116, 39, 32, 40, 103, 105, 118, 101, 110, 32, 98, 121, 32,
+ 105, 116, 115, 32, 107, 101, 121, 41, 32, 97, 110, 100, 32, 97,
+ 108, 108, 32, 105, 116, 115, 32, 99, 104, 105, 108, 100, 114, 101,
+ 110, 44, 32, 105, 110, 10, 32, 32, 98, 114, 101, 97, 100, 116,
+ 104, 32, 102, 105, 114, 115, 116, 32, 111, 114, 100, 101, 114, 44,
+ 32, 111, 114, 100, 101, 114, 105, 110, 103, 32, 101, 100, 103, 101,
+ 115, 32, 98, 121, 32, 39, 111, 114, 100, 101, 114, 95, 98, 121,
+ 39, 46, 10, 10, 32, 32, 82, 101, 116, 117, 114, 110, 115, 32,
+ 116, 104, 101, 32, 108, 105, 115, 116, 32, 111, 102, 32, 97, 108,
+ 108, 32, 118, 105, 115, 105, 116, 101, 100, 32, 110, 111, 100, 101,
+ 115, 44, 32, 105, 110, 32, 111, 114, 100, 101, 114, 32, 116, 104,
+ 101, 121, 32, 119, 101, 114, 101, 32, 118, 105, 115, 105, 116, 101,
+ 100, 46, 32, 70, 97, 105, 108, 115, 32, 105, 102, 10, 32, 32,
+ 99, 97, 108, 108, 101, 100, 32, 110, 111, 116, 32, 102, 114, 111,
+ 109, 32, 97, 32, 103, 101, 110, 101, 114, 97, 116, 111, 114, 32,
+ 99, 97, 108, 108, 98, 97, 99, 107, 58, 32, 97, 32, 103, 114,
+ 97, 112, 104, 32, 117, 110, 100, 101, 114, 32, 99, 111, 110, 115,
+ 116, 114, 117, 99, 116, 105, 111, 110, 32, 99, 97, 110, 39, 116,
+ 32, 98, 101, 10, 32, 32, 113, 117, 101, 114, 105, 101, 100, 46,
+ 10, 10, 32, 32, 69, 97, 99, 104, 32, 110, 111, 100, 101, 32,
+ 105, 115, 32, 118, 105, 115, 105, 116, 101, 100, 32, 111, 110, 108,
+ 121, 32, 111, 110, 99, 101, 44, 32, 101, 118, 101, 110, 32, 105,
+ 102, 32, 105, 116, 32, 105, 115, 32, 114, 101, 97, 99, 104, 97,
+ 98, 108, 101, 32, 116, 104, 114, 111, 117, 103, 104, 32, 109, 117,
+ 108, 116, 105, 112, 108, 101, 10, 32, 32, 112, 97, 116, 104, 115,
+ 46, 32, 78, 111, 116, 101, 32, 116, 104, 97, 116, 32, 116, 104,
+ 101, 32, 103, 114, 97, 112, 104, 32, 104, 97, 115, 32, 110, 111,
+ 32, 99, 121, 99, 108, 101, 115, 32, 40, 98, 121, 32, 99, 111,
+ 110, 115, 116, 114, 117, 99, 116, 105, 111, 110, 41, 46, 10, 10,
+ 32, 32, 84, 104, 101, 32, 118, 105, 115, 105, 116, 111, 114, 32,
+ 99, 97, 108, 108, 98, 97, 99, 107, 32, 40, 105, 102, 32, 110,
+ 111, 116, 32, 78, 111, 110, 101, 41, 32, 105, 115, 32, 99, 97,
+ 108, 108, 101, 100, 32, 102, 111, 114, 32, 101, 97, 99, 104, 32,
+ 118, 105, 115, 105, 116, 101, 100, 32, 110, 111, 100, 101, 46, 32,
+ 73, 116, 32, 100, 101, 99, 105, 100, 101, 115, 10, 32, 32, 119,
+ 104, 97, 116, 32, 99, 104, 105, 108, 100, 114, 101, 110, 32, 116,
+ 111, 32, 118, 105, 115, 105, 116, 32, 110, 101, 120, 116, 46, 32,
+ 84, 104, 101, 32, 99, 97, 108, 108, 98, 97, 99, 107, 32, 97,
+ 108, 119, 97, 121, 115, 32, 115, 101, 101, 115, 32, 97, 108, 108,
+ 32, 99, 104, 105, 108, 100, 114, 101, 110, 32, 111, 102, 32, 116,
+ 104, 101, 10, 32, 32, 110, 111, 100, 101, 44, 32, 101, 118, 101,
+ 110, 32, 105, 102, 32, 115, 111, 109, 101, 32, 111, 102, 32, 116,
+ 104, 101, 109, 32, 40, 111, 114, 32, 97, 108, 108, 41, 32, 104,
+ 97, 118, 101, 32, 97, 108, 114, 101, 97, 100, 121, 32, 98, 101,
+ 101, 110, 32, 118, 105, 115, 105, 116, 101, 100, 46, 32, 86, 105,
+ 115, 105, 116, 101, 100, 32, 110, 111, 100, 101, 115, 10, 32, 32,
+ 119, 105, 108, 108, 32, 98, 101, 32, 115, 107, 105, 112, 112, 101,
+ 100, 32, 101, 118, 101, 110, 32, 105, 102, 32, 116, 104, 101, 32,
+ 118, 105, 115, 105, 116, 111, 114, 32, 114, 101, 116, 117, 114, 110,
+ 115, 32, 116, 104, 101, 109, 46, 10, 10, 32, 32, 65, 114, 103,
+ 115, 58, 10, 32, 32, 32, 32, 114, 111, 111, 116, 58, 32, 97,
+ 32, 107, 101, 121, 32, 111, 102, 32, 116, 104, 101, 32, 110, 111,
+ 100, 101, 32, 116, 111, 32, 115, 116, 97, 114, 116, 32, 116, 104,
+ 101, 32, 116, 114, 97, 118, 101, 114, 115, 97, 108, 32, 102, 114,
+ 111, 109, 44, 32, 115, 101, 101, 32, 103, 114, 97, 112, 104, 46,
+ 107, 101, 121, 40, 46, 46, 46, 41, 46, 10, 32, 32, 32, 32,
+ 118, 105, 115, 105, 116, 111, 114, 58, 32, 102, 117, 110, 99, 40,
+ 110, 111, 100, 101, 58, 32, 103, 114, 97, 112, 104, 46, 110, 111,
+ 100, 101, 44, 32, 99, 104, 105, 108, 100, 114, 101, 110, 58, 32,
+ 91, 93, 103, 114, 97, 112, 104, 46, 110, 111, 100, 101, 41, 58,
+ 32, 91, 93, 103, 114, 97, 112, 104, 46, 110, 111, 100, 101, 46,
+ 10, 32, 32, 32, 32, 111, 114, 100, 101, 114, 95, 98, 121, 58,
+ 32, 101, 105, 116, 104, 101, 114, 32, 75, 69, 89, 95, 79, 82,
+ 68, 69, 82, 32, 111, 114, 32, 68, 69, 70, 73, 78, 73, 84,
+ 73, 79, 78, 95, 79, 82, 68, 69, 82, 44, 32, 100, 101, 102,
+ 97, 117, 108, 116, 32, 75, 69, 89, 95, 79, 82, 68, 69, 82,
+ 46, 10, 10, 32, 32, 82, 101, 116, 117, 114, 110, 115, 58, 10,
+ 32, 32, 32, 32, 76, 105, 115, 116, 32, 111, 102, 32, 118, 105,
+ 115, 105, 116, 101, 100, 32, 103, 114, 97, 112, 104, 46, 110, 111,
+ 100, 101, 32, 111, 98, 106, 101, 99, 116, 115, 44, 32, 115, 116,
+ 97, 114, 116, 105, 110, 103, 32, 119, 105, 116, 104, 32, 116, 104,
+ 101, 32, 114, 111, 111, 116, 46, 10, 32, 32, 34, 34, 34, 10,
+ 32, 32, 114, 101, 116, 117, 114, 110, 32, 95, 95, 110, 97, 116,
+ 105, 118, 101, 95, 95, 46, 103, 114, 97, 112, 104, 40, 41, 46,
+ 100, 101, 115, 99, 101, 110, 100, 97, 110, 116, 115, 40, 114, 111,
+ 111, 116, 44, 32, 118, 105, 115, 105, 116, 111, 114, 44, 32, 111,
+ 114, 100, 101, 114, 95, 98, 121, 41, 10, 10, 10, 100, 101, 102,
+ 32, 95, 112, 97, 114, 101, 110, 116, 115, 40, 99, 104, 105, 108,
+ 100, 44, 32, 107, 105, 110, 100, 61, 78, 111, 110, 101, 44, 32,
+ 111, 114, 100, 101, 114, 95, 98, 121, 61, 95, 75, 69, 89, 95,
+ 79, 82, 68, 69, 82, 41, 58, 10, 32, 32, 34, 34, 34, 82,
+ 101, 116, 117, 114, 110, 115, 32, 100, 105, 114, 101, 99, 116, 32,
+ 112, 97, 114, 101, 110, 116, 115, 32, 111, 102, 32, 97, 32, 110,
+ 111, 100, 101, 32, 40, 103, 105, 118, 101, 110, 32, 98, 121, 32,
+ 105, 116, 115, 32, 107, 101, 121, 41, 44, 32, 111, 112, 116, 105,
+ 111, 110, 97, 108, 108, 121, 32, 102, 105, 108, 116, 101, 114, 105,
+ 110, 103, 10, 32, 32, 116, 104, 101, 109, 32, 98, 121, 32, 107,
+ 105, 110, 100, 46, 10, 10, 32, 32, 68, 101, 112, 101, 110, 100,
+ 105, 110, 103, 32, 111, 110, 32, 39, 111, 114, 100, 101, 114, 95,
+ 98, 121, 39, 44, 32, 116, 104, 101, 32, 112, 97, 114, 101, 110,
+ 116, 115, 32, 97, 114, 101, 32, 101, 105, 116, 104, 101, 114, 32,
+ 111, 114, 100, 101, 114, 101, 100, 32, 108, 101, 120, 105, 99, 111,
+ 103, 114, 97, 112, 104, 105, 99, 97, 108, 108, 121, 32, 98, 121,
+ 10, 32, 32, 116, 104, 101, 105, 114, 32, 107, 101, 121, 32, 111,
+ 114, 32, 98, 121, 32, 116, 104, 101, 32, 111, 114, 100, 101, 114,
+ 32, 101, 100, 103, 101, 115, 32, 102, 114, 111, 109, 32, 116, 104,
+ 101, 109, 32, 119, 101, 114, 101, 32, 100, 101, 102, 105, 110, 101,
+ 100, 46, 10, 10, 32, 32, 70, 97, 105, 108, 115, 32, 105, 102,
+ 32, 99, 97, 108, 108, 101, 100, 32, 110, 111, 116, 32, 102, 114,
+ 111, 109, 32, 97, 32, 103, 101, 110, 101, 114, 97, 116, 111, 114,
+ 32, 99, 97, 108, 108, 98, 97, 99, 107, 58, 32, 97, 32, 103,
+ 114, 97, 112, 104, 32, 117, 110, 100, 101, 114, 32, 99, 111, 110,
+ 115, 116, 114, 117, 99, 116, 105, 111, 110, 10, 32, 32, 99, 97,
+ 110, 39, 116, 32, 98, 101, 32, 113, 117, 101, 114, 105, 101, 100,
+ 46, 10, 10, 32, 32, 65, 114, 103, 115, 58, 10, 32, 32, 32,
+ 32, 99, 104, 105, 108, 100, 58, 32, 97, 32, 107, 101, 121, 32,
+ 111, 102, 32, 116, 104, 101, 32, 110, 111, 100, 101, 32, 116, 111,
+ 32, 102, 105, 110, 100, 32, 112, 97, 114, 101, 110, 116, 115, 32,
+ 111, 102, 44, 32, 115, 101, 101, 32, 103, 114, 97, 112, 104, 46,
+ 107, 101, 121, 40, 46, 46, 46, 41, 46, 10, 32, 32, 32, 32,
+ 107, 105, 110, 100, 58, 32, 97, 32, 115, 116, 114, 105, 110, 103,
+ 32, 119, 105, 116, 104, 32, 97, 32, 107, 105, 110, 100, 32, 111,
+ 102, 32, 112, 97, 114, 101, 110, 116, 115, 32, 116, 111, 32, 114,
+ 101, 116, 117, 114, 110, 32, 111, 114, 32, 78, 111, 110, 101, 32,
+ 102, 111, 114, 32, 97, 108, 108, 46, 10, 32, 32, 32, 32, 111,
+ 114, 100, 101, 114, 95, 98, 121, 58, 32, 101, 105, 116, 104, 101,
+ 114, 32, 75, 69, 89, 95, 79, 82, 68, 69, 82, 32, 111, 114,
+ 32, 68, 69, 70, 73, 78, 73, 84, 73, 79, 78, 95, 79, 82,
+ 68, 69, 82, 44, 32, 100, 101, 102, 97, 117, 108, 116, 32, 75,
+ 69, 89, 95, 79, 82, 68, 69, 82, 46, 10, 10, 32, 32, 82,
+ 101, 116, 117, 114, 110, 115, 58, 10, 32, 32, 32, 32, 76, 105,
+ 115, 116, 32, 111, 102, 32, 103, 114, 97, 112, 104, 46, 110, 111,
+ 100, 101, 32, 111, 98, 106, 101, 99, 116, 115, 46, 10, 32, 32,
+ 34, 34, 34, 10, 32, 32, 111, 117, 116, 32, 61, 32, 95, 95,
+ 110, 97, 116, 105, 118, 101, 95, 95, 46, 103, 114, 97, 112, 104,
+ 40, 41, 46, 112, 97, 114, 101, 110, 116, 115, 40, 99, 104, 105,
+ 108, 100, 44, 32, 111, 114, 100, 101, 114, 95, 98, 121, 41, 10,
+ 32, 32, 105, 102, 32, 107, 105, 110, 100, 58, 10, 32, 32, 32,
+ 32, 114, 101, 116, 117, 114, 110, 32, 91, 110, 32, 102, 111, 114,
+ 32, 110, 32, 105, 110, 32, 111, 117, 116, 32, 105, 102, 32, 110,
+ 46, 107, 101, 121, 46, 107, 105, 110, 100, 32, 61, 61, 32, 107,
+ 105, 110, 100, 93, 10, 32, 32, 114, 101, 116, 117, 114, 110, 32,
+ 111, 117, 116, 10, 10, 10, 100, 101, 102, 32, 95, 115, 111, 114,
+ 116, 101, 100, 95, 110, 111, 100, 101, 115, 40, 110, 111, 100, 101,
+ 115, 44, 32, 111, 114, 100, 101, 114, 95, 98, 121, 61, 95, 75,
+ 69, 89, 95, 79, 82, 68, 69, 82, 41, 58, 10, 32, 32, 34,
+ 34, 34, 82, 101, 116, 117, 114, 110, 115, 32, 97, 32, 110, 101,
+ 119, 32, 115, 111, 114, 116, 101, 100, 32, 108, 105, 115, 116, 32,
+ 111, 102, 32, 110, 111, 100, 101, 115, 46, 10, 10, 32, 32, 68,
+ 101, 112, 101, 110, 100, 105, 110, 103, 32, 111, 110, 32, 39, 111,
+ 114, 100, 101, 114, 95, 98, 121, 39, 44, 32, 116, 104, 101, 32,
+ 110, 111, 100, 101, 115, 32, 97, 114, 101, 32, 101, 105, 116, 104,
+ 101, 114, 32, 111, 114, 100, 101, 114, 101, 100, 32, 108, 101, 120,
+ 105, 99, 111, 103, 114, 97, 112, 104, 105, 99, 97, 108, 108, 121,
+ 32, 98, 121, 10, 32, 32, 116, 104, 101, 105, 114, 32, 107, 101,
+ 121, 115, 32, 111, 114, 32, 98, 121, 32, 116, 104, 101, 32, 111,
+ 114, 100, 101, 114, 32, 116, 104, 101, 121, 32, 119, 101, 114, 101,
+ 32, 100, 101, 102, 105, 110, 101, 100, 32, 105, 110, 32, 116, 104,
+ 101, 32, 103, 114, 97, 112, 104, 46, 10, 10, 32, 32, 65, 114,
+ 103, 115, 58, 10, 32, 32, 32, 32, 110, 111, 100, 101, 115, 58,
+ 32, 97, 110, 32, 105, 116, 101, 114, 97, 98, 108, 101, 32, 111,
+ 102, 32, 103, 114, 97, 112, 104, 46, 110, 111, 100, 101, 32, 111,
+ 98, 106, 101, 99, 116, 115, 46, 10, 32, 32, 32, 32, 111, 114,
+ 100, 101, 114, 95, 98, 121, 58, 32, 101, 105, 116, 104, 101, 114,
+ 32, 75, 69, 89, 95, 79, 82, 68, 69, 82, 32, 111, 114, 32,
+ 68, 69, 70, 73, 78, 73, 84, 73, 79, 78, 95, 79, 82, 68,
+ 69, 82, 44, 32, 100, 101, 102, 97, 117, 108, 116, 32, 75, 69,
+ 89, 95, 79, 82, 68, 69, 82, 46, 10, 10, 32, 32, 82, 101,
+ 116, 117, 114, 110, 115, 58, 10, 32, 32, 32, 32, 76, 105, 115,
+ 116, 32, 111, 102, 32, 103, 114, 97, 112, 104, 46, 110, 111, 100,
+ 101, 32, 111, 98, 106, 101, 99, 116, 115, 46, 10, 32, 32, 34,
+ 34, 34, 10, 32, 32, 114, 101, 116, 117, 114, 110, 32, 95, 95,
+ 110, 97, 116, 105, 118, 101, 95, 95, 46, 103, 114, 97, 112, 104,
+ 40, 41, 46, 115, 111, 114, 116, 101, 100, 95, 110, 111, 100, 101,
115, 40, 110, 111, 100, 101, 115, 44, 32, 111, 114, 100, 101, 114,
- 95, 98, 121, 61, 95, 75, 69, 89, 95, 79, 82, 68, 69, 82,
- 41, 58, 10, 32, 32, 34, 34, 34, 82, 101, 116, 117, 114, 110,
- 115, 32, 97, 32, 110, 101, 119, 32, 115, 111, 114, 116, 101, 100,
- 32, 108, 105, 115, 116, 32, 111, 102, 32, 110, 111, 100, 101, 115,
- 46, 10, 10, 32, 32, 68, 101, 112, 101, 110, 100, 105, 110, 103,
- 32, 111, 110, 32, 39, 111, 114, 100, 101, 114, 95, 98, 121, 39,
- 44, 32, 116, 104, 101, 32, 110, 111, 100, 101, 115, 32, 97, 114,
- 101, 32, 101, 105, 116, 104, 101, 114, 32, 111, 114, 100, 101, 114,
- 101, 100, 32, 108, 101, 120, 105, 99, 111, 103, 114, 97, 112, 104,
- 105, 99, 97, 108, 108, 121, 32, 98, 121, 10, 32, 32, 116, 104,
- 101, 105, 114, 32, 107, 101, 121, 115, 32, 111, 114, 32, 98, 121,
- 32, 116, 104, 101, 32, 111, 114, 100, 101, 114, 32, 116, 104, 101,
- 121, 32, 119, 101, 114, 101, 32, 100, 101, 102, 105, 110, 101, 100,
- 32, 105, 110, 32, 116, 104, 101, 32, 103, 114, 97, 112, 104, 46,
- 10, 10, 32, 32, 65, 114, 103, 115, 58, 10, 32, 32, 32, 32,
- 110, 111, 100, 101, 115, 58, 32, 97, 110, 32, 105, 116, 101, 114,
- 97, 98, 108, 101, 32, 111, 102, 32, 103, 114, 97, 112, 104, 46,
- 110, 111, 100, 101, 32, 111, 98, 106, 101, 99, 116, 115, 46, 10,
- 32, 32, 32, 32, 111, 114, 100, 101, 114, 95, 98, 121, 58, 32,
- 101, 105, 116, 104, 101, 114, 32, 75, 69, 89, 95, 79, 82, 68,
- 69, 82, 32, 111, 114, 32, 68, 69, 70, 73, 78, 73, 84, 73,
- 79, 78, 95, 79, 82, 68, 69, 82, 44, 32, 100, 101, 102, 97,
- 117, 108, 116, 32, 75, 69, 89, 95, 79, 82, 68, 69, 82, 46,
- 10, 10, 32, 32, 82, 101, 116, 117, 114, 110, 115, 58, 10, 32,
- 32, 32, 32, 76, 105, 115, 116, 32, 111, 102, 32, 103, 114, 97,
- 112, 104, 46, 110, 111, 100, 101, 32, 111, 98, 106, 101, 99, 116,
- 115, 46, 10, 32, 32, 34, 34, 34, 10, 32, 32, 114, 101, 116,
- 117, 114, 110, 32, 95, 95, 110, 97, 116, 105, 118, 101, 95, 95,
- 46, 103, 114, 97, 112, 104, 40, 41, 46, 115, 111, 114, 116, 101,
- 100, 95, 110, 111, 100, 101, 115, 40, 110, 111, 100, 101, 115, 44,
- 32, 111, 114, 100, 101, 114, 95, 98, 121, 41, 10, 10, 10, 35,
- 32, 80, 117, 98, 108, 105, 99, 32, 65, 80, 73, 32, 111, 102,
- 32, 116, 104, 105, 115, 32, 109, 111, 100, 117, 108, 101, 46, 10,
- 103, 114, 97, 112, 104, 32, 61, 32, 115, 116, 114, 117, 99, 116,
- 40, 10, 32, 32, 32, 32, 75, 69, 89, 95, 79, 82, 68, 69,
- 82, 32, 61, 32, 95, 75, 69, 89, 95, 79, 82, 68, 69, 82,
- 44, 10, 32, 32, 32, 32, 68, 69, 70, 73, 78, 73, 84, 73,
- 79, 78, 95, 79, 82, 68, 69, 82, 32, 61, 32, 95, 68, 69,
- 70, 73, 78, 73, 84, 73, 79, 78, 95, 79, 82, 68, 69, 82,
- 44, 10, 10, 32, 32, 32, 32, 107, 101, 121, 32, 61, 32, 95,
- 107, 101, 121, 44, 10, 32, 32, 32, 32, 107, 101, 121, 115, 101,
- 116, 32, 61, 32, 95, 107, 101, 121, 115, 101, 116, 44, 10, 32,
- 32, 32, 32, 105, 115, 95, 107, 101, 121, 115, 101, 116, 32, 61,
- 32, 95, 105, 115, 95, 107, 101, 121, 115, 101, 116, 44, 10, 10,
- 32, 32, 32, 32, 97, 100, 100, 95, 110, 111, 100, 101, 32, 61,
- 32, 95, 97, 100, 100, 95, 110, 111, 100, 101, 44, 10, 32, 32,
- 32, 32, 97, 100, 100, 95, 101, 100, 103, 101, 32, 61, 32, 95,
- 97, 100, 100, 95, 101, 100, 103, 101, 44, 10, 10, 32, 32, 32,
- 32, 110, 111, 100, 101, 32, 61, 32, 95, 110, 111, 100, 101, 44,
- 10, 32, 32, 32, 32, 99, 104, 105, 108, 100, 114, 101, 110, 32,
- 61, 32, 95, 99, 104, 105, 108, 100, 114, 101, 110, 44, 10, 32,
- 32, 32, 32, 100, 101, 115, 99, 101, 110, 100, 97, 110, 116, 115,
- 32, 61, 32, 95, 100, 101, 115, 99, 101, 110, 100, 97, 110, 116,
- 115, 44, 10, 32, 32, 32, 32, 112, 97, 114, 101, 110, 116, 115,
- 32, 61, 32, 95, 112, 97, 114, 101, 110, 116, 115, 44, 10, 32,
- 32, 32, 32, 115, 111, 114, 116, 101, 100, 95, 110, 111, 100, 101,
- 115, 32, 61, 32, 95, 115, 111, 114, 116, 101, 100, 95, 110, 111,
- 100, 101, 115, 44, 10, 41, 10}),
+ 95, 98, 121, 41, 10, 10, 10, 35, 32, 80, 117, 98, 108, 105,
+ 99, 32, 65, 80, 73, 32, 111, 102, 32, 116, 104, 105, 115, 32,
+ 109, 111, 100, 117, 108, 101, 46, 10, 103, 114, 97, 112, 104, 32,
+ 61, 32, 115, 116, 114, 117, 99, 116, 40, 10, 32, 32, 32, 32,
+ 75, 69, 89, 95, 79, 82, 68, 69, 82, 32, 61, 32, 95, 75,
+ 69, 89, 95, 79, 82, 68, 69, 82, 44, 10, 32, 32, 32, 32,
+ 68, 69, 70, 73, 78, 73, 84, 73, 79, 78, 95, 79, 82, 68,
+ 69, 82, 32, 61, 32, 95, 68, 69, 70, 73, 78, 73, 84, 73,
+ 79, 78, 95, 79, 82, 68, 69, 82, 44, 10, 10, 32, 32, 32,
+ 32, 107, 101, 121, 32, 61, 32, 95, 107, 101, 121, 44, 10, 32,
+ 32, 32, 32, 107, 101, 121, 115, 101, 116, 32, 61, 32, 95, 107,
+ 101, 121, 115, 101, 116, 44, 10, 32, 32, 32, 32, 105, 115, 95,
+ 107, 101, 121, 115, 101, 116, 32, 61, 32, 95, 105, 115, 95, 107,
+ 101, 121, 115, 101, 116, 44, 10, 10, 32, 32, 32, 32, 97, 100,
+ 100, 95, 110, 111, 100, 101, 32, 61, 32, 95, 97, 100, 100, 95,
+ 110, 111, 100, 101, 44, 10, 32, 32, 32, 32, 97, 100, 100, 95,
+ 101, 100, 103, 101, 32, 61, 32, 95, 97, 100, 100, 95, 101, 100,
+ 103, 101, 44, 10, 10, 32, 32, 32, 32, 110, 111, 100, 101, 32,
+ 61, 32, 95, 110, 111, 100, 101, 44, 10, 32, 32, 32, 32, 99,
+ 104, 105, 108, 100, 114, 101, 110, 32, 61, 32, 95, 99, 104, 105,
+ 108, 100, 114, 101, 110, 44, 10, 32, 32, 32, 32, 100, 101, 115,
+ 99, 101, 110, 100, 97, 110, 116, 115, 32, 61, 32, 95, 100, 101,
+ 115, 99, 101, 110, 100, 97, 110, 116, 115, 44, 10, 32, 32, 32,
+ 32, 112, 97, 114, 101, 110, 116, 115, 32, 61, 32, 95, 112, 97,
+ 114, 101, 110, 116, 115, 44, 10, 32, 32, 32, 32, 115, 111, 114,
+ 116, 101, 100, 95, 110, 111, 100, 101, 115, 32, 61, 32, 95, 115,
+ 111, 114, 116, 101, 100, 95, 110, 111, 100, 101, 115, 44, 10, 41,
+ 10}),
"stdlib/internal/io.star": string([]byte{35, 32,
67, 111, 112, 121, 114, 105, 103, 104, 116, 32, 50, 48, 49, 57,
32, 84, 104, 101, 32, 76, 85, 67, 73, 32, 65, 117, 116, 104,
@@ -14256,10 +14260,10 @@
138, 160, 168, 24, 185, 138, 84, 160, 101, 216, 166, 255, 101, 62,
61, 138, 178, 12, 253, 229, 10, 95, 122, 100, 154, 21, 230, 57,
95, 25},
- "stdlib/internal/graph.star": {64, 207,
- 168, 7, 83, 104, 230, 167, 146, 175, 185, 75, 103, 59, 200, 216,
- 18, 164, 113, 67, 68, 179, 224, 210, 46, 185, 37, 22, 105, 177,
- 117, 132},
+ "stdlib/internal/graph.star": {162, 160,
+ 49, 87, 159, 20, 85, 97, 27, 130, 223, 197, 202, 74, 227, 22,
+ 141, 122, 103, 230, 210, 73, 109, 91, 81, 82, 147, 134, 18, 82,
+ 232, 223},
"stdlib/internal/io.star": {46, 37,
29, 235, 200, 105, 40, 153, 76, 59, 206, 170, 68, 254, 242, 108,
253, 240, 110, 152, 136, 211, 186, 63, 229, 31, 49, 162, 151, 105,
diff --git a/lucicfg/starlark/stdlib/internal/graph.star b/lucicfg/starlark/stdlib/internal/graph.star
index ab7491c..a5b1d61 100644
--- a/lucicfg/starlark/stdlib/internal/graph.star
+++ b/lucicfg/starlark/stdlib/internal/graph.star
@@ -138,8 +138,10 @@
in arbitrary order as long as at the end of the script execution (when the
graph is finalized) the graph is complete.
- Fails if there's already an edge between the given nodes with exact same title
- or the new edge introduces a cycle.
+ It is OK to add the same edge (with the same title) more than once. Only
+ the trace of the first definition is recorded.
+
+ Fails if the new edge introduces a cycle.
Can be used only from code that was loaded via some exec(...). Fails if run
from a module being loaded via load(...). Such library-like modules must not