Merge pull request #1389 from Bluetegu/noprivate-describegraph-1037
Add --noprivate flag to describegraph rpc to filter out private channels
This commit is contained in:
commit
4c0ca37174
@ -33,3 +33,41 @@ func TestOpenWithCreate(t *testing.T) {
|
|||||||
t.Fatalf("channeldb failed to create data directory")
|
t.Fatalf("channeldb failed to create data directory")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TestWipe tests that the database wipe operation completes successfully
|
||||||
|
// and that the buckets are deleted. It also checks that attempts to fetch
|
||||||
|
// information while the buckets are not set return the correct errors.
|
||||||
|
func TestWipe(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
// First, create a temporary directory to be used for the duration of
|
||||||
|
// this test.
|
||||||
|
tempDirName, err := ioutil.TempDir("", "channeldb")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("unable to create temp dir: %v", err)
|
||||||
|
}
|
||||||
|
defer os.RemoveAll(tempDirName)
|
||||||
|
|
||||||
|
// Next, open thereby creating channeldb for the first time.
|
||||||
|
dbPath := filepath.Join(tempDirName, "cdb")
|
||||||
|
cdb, err := Open(dbPath)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("unable to create channeldb: %v", err)
|
||||||
|
}
|
||||||
|
defer cdb.Close()
|
||||||
|
|
||||||
|
if err := cdb.Wipe(); err != nil {
|
||||||
|
t.Fatalf("unable to wipe channeldb: %v", err)
|
||||||
|
}
|
||||||
|
// Check correct errors are returned
|
||||||
|
_, err = cdb.FetchAllOpenChannels()
|
||||||
|
if err != ErrNoActiveChannels {
|
||||||
|
t.Fatalf("fetching open channels: expected '%v' instead got '%v'",
|
||||||
|
ErrNoActiveChannels, err)
|
||||||
|
}
|
||||||
|
_, err = cdb.FetchClosedChannels(false)
|
||||||
|
if err != ErrNoClosedChannels {
|
||||||
|
t.Fatalf("fetching closed channels: expected '%v' instead got '%v'",
|
||||||
|
ErrNoClosedChannels, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -2467,7 +2467,15 @@ var describeGraphCommand = cli.Command{
|
|||||||
Category: "Peers",
|
Category: "Peers",
|
||||||
Description: "Prints a human readable version of the known channel " +
|
Description: "Prints a human readable version of the known channel " +
|
||||||
"graph from the PoV of the node",
|
"graph from the PoV of the node",
|
||||||
Usage: "Describe the network graph.",
|
Usage: "Describe the network graph.",
|
||||||
|
Flags: []cli.Flag{
|
||||||
|
cli.BoolFlag{
|
||||||
|
Name: "include_unannounced",
|
||||||
|
Usage: "If set, unannounced channels will be included in the " +
|
||||||
|
"graph. Unannounced channels are both private channels, and " +
|
||||||
|
"public channels that are not yet announced to the network.",
|
||||||
|
},
|
||||||
|
},
|
||||||
Action: actionDecorator(describeGraph),
|
Action: actionDecorator(describeGraph),
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2475,7 +2483,9 @@ func describeGraph(ctx *cli.Context) error {
|
|||||||
client, cleanUp := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
defer cleanUp()
|
defer cleanUp()
|
||||||
|
|
||||||
req := &lnrpc.ChannelGraphRequest{}
|
req := &lnrpc.ChannelGraphRequest{
|
||||||
|
IncludeUnannounced: ctx.Bool("include_unannounced"),
|
||||||
|
}
|
||||||
|
|
||||||
graph, err := client.DescribeGraph(context.Background(), req)
|
graph, err := client.DescribeGraph(context.Background(), req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
156
lnd_test.go
156
lnd_test.go
@ -870,7 +870,9 @@ func assertChannelPolicy(t *harnessTest, node *lntest.HarnessNode,
|
|||||||
advertisingNode string, expectedPolicy *lnrpc.RoutingPolicy,
|
advertisingNode string, expectedPolicy *lnrpc.RoutingPolicy,
|
||||||
chanPoints ...*lnrpc.ChannelPoint) {
|
chanPoints ...*lnrpc.ChannelPoint) {
|
||||||
|
|
||||||
descReq := &lnrpc.ChannelGraphRequest{}
|
descReq := &lnrpc.ChannelGraphRequest{
|
||||||
|
IncludeUnannounced: true,
|
||||||
|
}
|
||||||
chanGraph, err := node.DescribeGraph(context.Background(), descReq)
|
chanGraph, err := node.DescribeGraph(context.Background(), descReq)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unable to query for alice's graph: %v", err)
|
t.Fatalf("unable to query for alice's graph: %v", err)
|
||||||
@ -1496,7 +1498,9 @@ func testOpenChannelAfterReorg(net *lntest.NetworkHarness, t *harnessTest) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Alice should now have 1 edge in her graph.
|
// Alice should now have 1 edge in her graph.
|
||||||
req := &lnrpc.ChannelGraphRequest{}
|
req := &lnrpc.ChannelGraphRequest{
|
||||||
|
IncludeUnannounced: true,
|
||||||
|
}
|
||||||
chanGraph, err := net.Alice.DescribeGraph(ctxb, req)
|
chanGraph, err := net.Alice.DescribeGraph(ctxb, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unable to query for alice's routing table: %v", err)
|
t.Fatalf("unable to query for alice's routing table: %v", err)
|
||||||
@ -1538,7 +1542,9 @@ func testOpenChannelAfterReorg(net *lntest.NetworkHarness, t *harnessTest) {
|
|||||||
|
|
||||||
// Since the fundingtx was reorged out, Alice should now have no edges
|
// Since the fundingtx was reorged out, Alice should now have no edges
|
||||||
// in her graph.
|
// in her graph.
|
||||||
req = &lnrpc.ChannelGraphRequest{}
|
req = &lnrpc.ChannelGraphRequest{
|
||||||
|
IncludeUnannounced: true,
|
||||||
|
}
|
||||||
chanGraph, err = net.Alice.DescribeGraph(ctxb, req)
|
chanGraph, err = net.Alice.DescribeGraph(ctxb, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unable to query for alice's routing table: %v", err)
|
t.Fatalf("unable to query for alice's routing table: %v", err)
|
||||||
@ -4122,6 +4128,116 @@ func testSendToRouteErrorPropagation(net *lntest.NetworkHarness, t *harnessTest)
|
|||||||
closeChannelAndAssert(ctxt, t, net, carol, chanPointCarol, false)
|
closeChannelAndAssert(ctxt, t, net, carol, chanPointCarol, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// testUnannouncedChannels checks unannounced channels are not returned by
|
||||||
|
// describeGraph RPC request unless explicity asked for.
|
||||||
|
func testUnannouncedChannels(net *lntest.NetworkHarness, t *harnessTest) {
|
||||||
|
timeout := time.Duration(time.Second * 5)
|
||||||
|
ctb := context.Background()
|
||||||
|
amount := maxBtcFundingAmount
|
||||||
|
|
||||||
|
// Open a channel between Alice and Bob, ensuring the
|
||||||
|
// channel has been opened properly.
|
||||||
|
ctx, _ := context.WithTimeout(ctb, timeout)
|
||||||
|
chanOpenUpdate, err := net.OpenChannel(
|
||||||
|
ctx, net.Alice, net.Bob,
|
||||||
|
lntest.OpenChannelParams{
|
||||||
|
Amt: amount,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("unable to open channel: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mine 2 blocks, and check that the channel is opened but not yet
|
||||||
|
// announced to the network.
|
||||||
|
mineBlocks(t, net, 2)
|
||||||
|
|
||||||
|
// One block is enough to make the channel ready for use, since the
|
||||||
|
// nodes have defaultNumConfs=1 set.
|
||||||
|
ctx, _ = context.WithTimeout(ctb, timeout)
|
||||||
|
fundingChanPoint, err := net.WaitForChannelOpen(ctx, chanOpenUpdate)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("error while waiting for channel open: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Alice should have 1 edge in her graph.
|
||||||
|
req := &lnrpc.ChannelGraphRequest{
|
||||||
|
IncludeUnannounced: true,
|
||||||
|
}
|
||||||
|
ctx, _ = context.WithTimeout(ctb, timeout)
|
||||||
|
chanGraph, err := net.Alice.DescribeGraph(ctx, req)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("unable to query alice's graph: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
numEdges := len(chanGraph.Edges)
|
||||||
|
if numEdges != 1 {
|
||||||
|
t.Fatalf("expected to find 1 edge in the graph, found %d", numEdges)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Channels should not be announced yet, hence Alice should have no
|
||||||
|
// announced edges in her graph.
|
||||||
|
req.IncludeUnannounced = false
|
||||||
|
ctx, _ = context.WithTimeout(ctb, timeout)
|
||||||
|
chanGraph, err = net.Alice.DescribeGraph(ctx, req)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("unable to query alice's graph: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
numEdges = len(chanGraph.Edges)
|
||||||
|
if numEdges != 0 {
|
||||||
|
t.Fatalf("expected to find 0 announced edges in the graph, found %d",
|
||||||
|
numEdges)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mine 4 more blocks, and check that the channel is now announced.
|
||||||
|
mineBlocks(t, net, 4)
|
||||||
|
|
||||||
|
// Give the network a chance to learn that auth proof is confirmed.
|
||||||
|
var predErr error
|
||||||
|
err = lntest.WaitPredicate(func() bool {
|
||||||
|
// The channel should now be announced. Check that Alice has 1
|
||||||
|
// announced edge.
|
||||||
|
req.IncludeUnannounced = false
|
||||||
|
ctx, _ = context.WithTimeout(ctb, timeout)
|
||||||
|
chanGraph, err = net.Alice.DescribeGraph(ctx, req)
|
||||||
|
if err != nil {
|
||||||
|
predErr = fmt.Errorf("unable to query alice's graph: %v", err)
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
numEdges = len(chanGraph.Edges)
|
||||||
|
if numEdges != 1 {
|
||||||
|
predErr = fmt.Errorf("expected to find 1 announced edge in "+
|
||||||
|
"the graph, found %d", numEdges)
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}, time.Second*15)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("%v", predErr)
|
||||||
|
}
|
||||||
|
|
||||||
|
// The channel should now be announced. Check that Alice has 1 announced
|
||||||
|
// edge.
|
||||||
|
req.IncludeUnannounced = false
|
||||||
|
ctx, _ = context.WithTimeout(ctb, timeout)
|
||||||
|
chanGraph, err = net.Alice.DescribeGraph(ctx, req)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("unable to query alice's graph: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
numEdges = len(chanGraph.Edges)
|
||||||
|
if numEdges != 1 {
|
||||||
|
t.Fatalf("expected to find 1 announced edge in the graph, found %d",
|
||||||
|
numEdges)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Close the channel used during the test.
|
||||||
|
ctx, _ = context.WithTimeout(ctb, timeout)
|
||||||
|
closeChannelAndAssert(ctx, t, net, net.Alice, fundingChanPoint, false)
|
||||||
|
}
|
||||||
|
|
||||||
// testPrivateChannels tests that a private channel can be used for
|
// testPrivateChannels tests that a private channel can be used for
|
||||||
// routing by the two endpoints of the channel, but is not known by
|
// routing by the two endpoints of the channel, but is not known by
|
||||||
// the rest of the nodes in the graph.
|
// the rest of the nodes in the graph.
|
||||||
@ -4432,8 +4548,10 @@ func testPrivateChannels(net *lntest.NetworkHarness, t *harnessTest) {
|
|||||||
// nodes know about. Carol and Alice should know about 4, while
|
// nodes know about. Carol and Alice should know about 4, while
|
||||||
// Bob and Dave should only know about 3, since one channel is
|
// Bob and Dave should only know about 3, since one channel is
|
||||||
// private.
|
// private.
|
||||||
numChannels := func(node *lntest.HarnessNode) int {
|
numChannels := func(node *lntest.HarnessNode, includeUnannounced bool) int {
|
||||||
req := &lnrpc.ChannelGraphRequest{}
|
req := &lnrpc.ChannelGraphRequest{
|
||||||
|
IncludeUnannounced: includeUnannounced,
|
||||||
|
}
|
||||||
ctxt, _ := context.WithTimeout(ctxb, timeout)
|
ctxt, _ := context.WithTimeout(ctxb, timeout)
|
||||||
chanGraph, err := node.DescribeGraph(ctxt, req)
|
chanGraph, err := node.DescribeGraph(ctxt, req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -4444,25 +4562,37 @@ func testPrivateChannels(net *lntest.NetworkHarness, t *harnessTest) {
|
|||||||
|
|
||||||
var predErr error
|
var predErr error
|
||||||
err = lntest.WaitPredicate(func() bool {
|
err = lntest.WaitPredicate(func() bool {
|
||||||
aliceChans := numChannels(net.Alice)
|
aliceChans := numChannels(net.Alice, true)
|
||||||
if aliceChans != 4 {
|
if aliceChans != 4 {
|
||||||
predErr = fmt.Errorf("expected Alice to know 4 edges, "+
|
predErr = fmt.Errorf("expected Alice to know 4 edges, "+
|
||||||
"had %v", aliceChans)
|
"had %v", aliceChans)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
bobChans := numChannels(net.Bob)
|
alicePubChans := numChannels(net.Alice, false)
|
||||||
|
if alicePubChans != 3 {
|
||||||
|
predErr = fmt.Errorf("expected Alice to know 3 public edges, "+
|
||||||
|
"had %v", alicePubChans)
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
bobChans := numChannels(net.Bob, true)
|
||||||
if bobChans != 3 {
|
if bobChans != 3 {
|
||||||
predErr = fmt.Errorf("expected Bob to know 3 edges, "+
|
predErr = fmt.Errorf("expected Bob to know 3 edges, "+
|
||||||
"had %v", bobChans)
|
"had %v", bobChans)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
carolChans := numChannels(carol)
|
carolChans := numChannels(carol, true)
|
||||||
if carolChans != 4 {
|
if carolChans != 4 {
|
||||||
predErr = fmt.Errorf("expected Carol to know 4 edges, "+
|
predErr = fmt.Errorf("expected Carol to know 4 edges, "+
|
||||||
"had %v", carolChans)
|
"had %v", carolChans)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
daveChans := numChannels(dave)
|
carolPubChans := numChannels(carol, false)
|
||||||
|
if carolPubChans != 3 {
|
||||||
|
predErr = fmt.Errorf("expected Carol to know 3 public edges, "+
|
||||||
|
"had %v", carolPubChans)
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
daveChans := numChannels(dave, true)
|
||||||
if daveChans != 3 {
|
if daveChans != 3 {
|
||||||
predErr = fmt.Errorf("expected Dave to know 3 edges, "+
|
predErr = fmt.Errorf("expected Dave to know 3 edges, "+
|
||||||
"had %v", daveChans)
|
"had %v", daveChans)
|
||||||
@ -5781,7 +5911,9 @@ func testGarbageCollectLinkNodes(net *lntest.NetworkHarness, t *harnessTest) {
|
|||||||
|
|
||||||
// Finally, we'll ensure that Bob and Carol no longer show in Alice's
|
// Finally, we'll ensure that Bob and Carol no longer show in Alice's
|
||||||
// channel graph.
|
// channel graph.
|
||||||
describeGraphReq := &lnrpc.ChannelGraphRequest{}
|
describeGraphReq := &lnrpc.ChannelGraphRequest{
|
||||||
|
IncludeUnannounced: true,
|
||||||
|
}
|
||||||
channelGraph, err := net.Alice.DescribeGraph(ctxb, describeGraphReq)
|
channelGraph, err := net.Alice.DescribeGraph(ctxb, describeGraphReq)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unable to query for alice's channel graph: %v", err)
|
t.Fatalf("unable to query for alice's channel graph: %v", err)
|
||||||
@ -12184,6 +12316,10 @@ var testsCases = []*testCase{
|
|||||||
name: "send to route error propagation",
|
name: "send to route error propagation",
|
||||||
test: testSendToRouteErrorPropagation,
|
test: testSendToRouteErrorPropagation,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "unannounced channels",
|
||||||
|
test: testUnannouncedChannels,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "private channels",
|
name: "private channels",
|
||||||
test: testPrivateChannels,
|
test: testPrivateChannels,
|
||||||
|
359
lnrpc/rpc.pb.go
359
lnrpc/rpc.pb.go
@ -3401,6 +3401,11 @@ func (m *ChannelEdge) GetNode2Policy() *RoutingPolicy {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type ChannelGraphRequest struct {
|
type ChannelGraphRequest struct {
|
||||||
|
// *
|
||||||
|
// Whether unannounced channels are included in the response or not. If set,
|
||||||
|
// unannounced channels are included. Unannounced channels are both private
|
||||||
|
// channels, and public channels that are not yet announced to the network.
|
||||||
|
IncludeUnannounced bool `protobuf:"varint,1,opt,name=include_unannounced" json:"include_unannounced,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ChannelGraphRequest) Reset() { *m = ChannelGraphRequest{} }
|
func (m *ChannelGraphRequest) Reset() { *m = ChannelGraphRequest{} }
|
||||||
@ -3408,6 +3413,13 @@ func (m *ChannelGraphRequest) String() string { return proto.CompactT
|
|||||||
func (*ChannelGraphRequest) ProtoMessage() {}
|
func (*ChannelGraphRequest) ProtoMessage() {}
|
||||||
func (*ChannelGraphRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{68} }
|
func (*ChannelGraphRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{68} }
|
||||||
|
|
||||||
|
func (m *ChannelGraphRequest) GetIncludeUnannounced() bool {
|
||||||
|
if m != nil {
|
||||||
|
return m.IncludeUnannounced
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
// / Returns a new instance of the directed channel graph.
|
// / Returns a new instance of the directed channel graph.
|
||||||
type ChannelGraph struct {
|
type ChannelGraph struct {
|
||||||
// / The list of `LightningNode`s in this channel graph
|
// / The list of `LightningNode`s in this channel graph
|
||||||
@ -7258,7 +7270,7 @@ var _Lightning_serviceDesc = grpc.ServiceDesc{
|
|||||||
func init() { proto.RegisterFile("rpc.proto", fileDescriptor0) }
|
func init() { proto.RegisterFile("rpc.proto", fileDescriptor0) }
|
||||||
|
|
||||||
var fileDescriptor0 = []byte{
|
var fileDescriptor0 = []byte{
|
||||||
// 6385 bytes of a gzipped FileDescriptorProto
|
// 6408 bytes of a gzipped FileDescriptorProto
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x7c, 0xdf, 0x6f, 0x24, 0xd9,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x7c, 0xdf, 0x6f, 0x24, 0xd9,
|
||||||
0x55, 0xff, 0x54, 0xbb, 0xdb, 0x76, 0x9f, 0x6e, 0xdb, 0xed, 0xeb, 0x5f, 0x3d, 0xbd, 0xb3, 0xb3,
|
0x55, 0xff, 0x54, 0xbb, 0xdb, 0x76, 0x9f, 0x6e, 0xdb, 0xed, 0xeb, 0x5f, 0x3d, 0xbd, 0xb3, 0xb3,
|
||||||
0xb3, 0x95, 0xd5, 0xce, 0xc4, 0xdf, 0xfd, 0xce, 0xcc, 0x3a, 0xc9, 0x6a, 0xb3, 0x0b, 0x09, 0x1e,
|
0xb3, 0x95, 0xd5, 0xce, 0xc4, 0xdf, 0xfd, 0xce, 0xcc, 0x3a, 0xc9, 0x6a, 0xb3, 0x0b, 0x09, 0x1e,
|
||||||
@ -7487,176 +7499,177 @@ var fileDescriptor0 = []byte{
|
|||||||
0xbd, 0xe5, 0x96, 0x1a, 0x48, 0x7e, 0xcb, 0x67, 0x8a, 0x5b, 0x7e, 0x0d, 0xea, 0xc8, 0x7a, 0x6f,
|
0xbd, 0xe5, 0x96, 0x1a, 0x48, 0x7e, 0xcb, 0x67, 0x8a, 0x5b, 0x7e, 0x0d, 0xea, 0xc8, 0x7a, 0x6f,
|
||||||
0x92, 0xff, 0x2b, 0x6e, 0x5b, 0x32, 0x40, 0xd5, 0x6e, 0x51, 0x6d, 0x2d, 0xab, 0x25, 0xe0, 0xb9,
|
0x92, 0xff, 0x2b, 0x6e, 0x5b, 0x32, 0x40, 0xd5, 0x6e, 0x51, 0x6d, 0x2d, 0xab, 0x25, 0xe0, 0xb9,
|
||||||
0xf7, 0x2b, 0x6f, 0x43, 0x53, 0x36, 0x43, 0x7b, 0x42, 0x9a, 0x23, 0x63, 0x7e, 0x6b, 0xbf, 0x3c,
|
0xf7, 0x2b, 0x6f, 0x43, 0x53, 0x36, 0x43, 0x7b, 0x42, 0x9a, 0x23, 0x63, 0x7e, 0x6b, 0xbf, 0x3c,
|
||||||
0x8b, 0x52, 0x7d, 0xb9, 0xa5, 0xbe, 0x9c, 0xbf, 0xec, 0x4b, 0x45, 0x49, 0x77, 0xe1, 0x62, 0x6d,
|
0x8b, 0x52, 0x7d, 0xb9, 0xa5, 0xbe, 0x9c, 0xbf, 0xec, 0x4b, 0x45, 0xe9, 0x3e, 0xd0, 0xd7, 0x56,
|
||||||
0x1e, 0xc4, 0xfe, 0xf8, 0x54, 0x99, 0xbc, 0xbe, 0x4e, 0xe2, 0x21, 0x98, 0x6d, 0x42, 0x0d, 0x3f,
|
0x0f, 0x62, 0x7f, 0x7c, 0xaa, 0xa4, 0xf4, 0x2e, 0xac, 0x04, 0x61, 0x6f, 0x38, 0xe9, 0xf3, 0xee,
|
||||||
0x53, 0x9a, 0xbc, 0x5c, 0x20, 0x05, 0x09, 0xbb, 0x05, 0x35, 0xde, 0x1f, 0x70, 0x75, 0xc2, 0x63,
|
0x24, 0xf4, 0xc3, 0x30, 0x9a, 0x84, 0x3d, 0xae, 0x6e, 0xed, 0xcb, 0xaa, 0xdc, 0xbe, 0x4e, 0xfb,
|
||||||
0xf6, 0x59, 0x1b, 0xf7, 0xc8, 0x13, 0x04, 0xa8, 0x1e, 0x10, 0xcd, 0xa9, 0x07, 0xdb, 0x0a, 0xcc,
|
0xa1, 0x86, 0xd8, 0x26, 0xd4, 0xb0, 0x23, 0xa5, 0xfb, 0xcb, 0x45, 0x58, 0x90, 0xb0, 0x5b, 0x50,
|
||||||
0x62, 0xf1, 0x61, 0xdf, 0x5d, 0x05, 0xf6, 0x48, 0x70, 0xb4, 0x19, 0xbf, 0xfe, 0xf6, 0x0c, 0x34,
|
0xe3, 0xfd, 0x01, 0x57, 0x67, 0x42, 0x66, 0x9f, 0xce, 0x71, 0x57, 0x3d, 0x41, 0x80, 0x0a, 0x05,
|
||||||
0x0c, 0x18, 0x25, 0x7d, 0x80, 0x03, 0xee, 0xf6, 0x03, 0x7f, 0xc4, 0x53, 0x1e, 0x4b, 0x2e, 0xce,
|
0xd1, 0x9c, 0x42, 0xb1, 0xed, 0xc6, 0x2c, 0x16, 0x1f, 0xf6, 0xdd, 0x55, 0x60, 0x8f, 0x84, 0x0c,
|
||||||
0xa1, 0x48, 0xe7, 0x9f, 0x0d, 0xba, 0xd1, 0x24, 0xed, 0xf6, 0xf9, 0x20, 0xe6, 0xc2, 0x30, 0xa3,
|
0x98, 0x11, 0xef, 0x6f, 0xcf, 0x40, 0xc3, 0x80, 0x51, 0x37, 0x0c, 0x70, 0xc0, 0xdd, 0x7e, 0xe0,
|
||||||
0xa1, 0xb0, 0x50, 0xa4, 0x1b, 0xf9, 0x1f, 0x9a, 0x74, 0x82, 0x1f, 0x72, 0xa8, 0x8a, 0x46, 0x8b,
|
0x8f, 0x78, 0xca, 0x63, 0xc9, 0xf7, 0x39, 0x14, 0xe9, 0xfc, 0xb3, 0x41, 0x37, 0x9a, 0xa4, 0xdd,
|
||||||
0x35, 0xaa, 0x66, 0xd1, 0x68, 0xb1, 0x22, 0x79, 0x1d, 0x55, 0x2b, 0xd1, 0x51, 0x6f, 0xc1, 0xba,
|
0x3e, 0x1f, 0xc4, 0x5c, 0x98, 0x72, 0x34, 0x2d, 0x16, 0x8a, 0x74, 0x23, 0xff, 0x43, 0x93, 0x4e,
|
||||||
0xd0, 0x46, 0x52, 0x6e, 0xbb, 0x39, 0x36, 0xb9, 0xa0, 0x96, 0x6d, 0x42, 0x0b, 0xc7, 0xac, 0x18,
|
0x70, 0x50, 0x0e, 0x55, 0xf1, 0x6b, 0xb1, 0x46, 0xd5, 0x2c, 0x7e, 0x2d, 0x56, 0x24, 0xaf, 0xd5,
|
||||||
0x3c, 0x09, 0xbe, 0x25, 0xe2, 0x43, 0x8e, 0x57, 0xc0, 0x91, 0x96, 0x02, 0x35, 0x26, 0xad, 0xb8,
|
0x6a, 0x25, 0x5a, 0xed, 0x2d, 0x58, 0x17, 0xfa, 0x4b, 0x4a, 0x7a, 0x37, 0xc7, 0x58, 0x17, 0xd4,
|
||||||
0x9d, 0x2b, 0xe0, 0x44, 0xeb, 0x7f, 0x68, 0xd3, 0xd6, 0x25, 0x6d, 0x0e, 0x77, 0x17, 0xa0, 0x71,
|
0xb2, 0x4d, 0x68, 0xe1, 0x98, 0x95, 0x48, 0x24, 0xc1, 0xb7, 0x44, 0x44, 0xc9, 0xf1, 0x0a, 0x38,
|
||||||
0x94, 0x46, 0x63, 0xb5, 0x29, 0x8b, 0xd0, 0x14, 0x45, 0x99, 0x0b, 0xf1, 0x12, 0x5c, 0x25, 0x2e,
|
0xd2, 0x52, 0x68, 0xc7, 0xa4, 0x15, 0xf7, 0x79, 0x05, 0x9c, 0x68, 0xfd, 0x0f, 0x6d, 0xda, 0xba,
|
||||||
0x7a, 0x12, 0x8d, 0xa3, 0x61, 0x34, 0x98, 0x1e, 0x4d, 0x8e, 0x93, 0x5e, 0x1c, 0x8c, 0xf1, 0x34,
|
0xa4, 0xcd, 0xe1, 0xee, 0x02, 0x34, 0x8e, 0xd2, 0x68, 0xac, 0x36, 0x65, 0x11, 0x9a, 0xa2, 0x28,
|
||||||
0xe4, 0xfe, 0xbd, 0x03, 0x2b, 0x56, 0xad, 0x0c, 0x19, 0x7d, 0x5a, 0xb0, 0xb4, 0xbe, 0xc4, 0x16,
|
0xb3, 0x27, 0x5e, 0x82, 0xab, 0xc4, 0x45, 0x4f, 0xa2, 0x71, 0x34, 0x8c, 0x06, 0xd3, 0xa3, 0xc9,
|
||||||
0x8c, 0xb7, 0x6c, 0xa8, 0x4a, 0x41, 0x28, 0x42, 0x79, 0xef, 0xcb, 0x7b, 0xed, 0x6d, 0x58, 0x52,
|
0x71, 0xd2, 0x8b, 0x83, 0x31, 0x9e, 0x9f, 0xdc, 0xbf, 0x77, 0x60, 0xc5, 0xaa, 0x95, 0x41, 0xa6,
|
||||||
0x23, 0x53, 0x1f, 0x0a, 0x2e, 0x6c, 0x17, 0xb9, 0x50, 0x7e, 0xbf, 0x28, 0x3f, 0x50, 0x4d, 0xfc,
|
0x4f, 0x0b, 0x21, 0xd0, 0xd7, 0xde, 0x82, 0xf1, 0x96, 0x0d, 0xe5, 0x2a, 0x08, 0x45, 0xf0, 0xef,
|
||||||
0xbc, 0xbc, 0xe5, 0xec, 0xd3, 0x1c, 0x55, 0xec, 0x40, 0xdf, 0x4c, 0x99, 0x27, 0x08, 0x35, 0x82,
|
0x7d, 0x79, 0x13, 0xbe, 0x0d, 0x4b, 0x6a, 0x64, 0xea, 0x43, 0xc1, 0x85, 0xed, 0x22, 0x17, 0xca,
|
||||||
0x9e, 0x06, 0x13, 0xf7, 0xb7, 0x1d, 0x80, 0x6c, 0x74, 0x74, 0x37, 0xa6, 0xd5, 0xbd, 0x48, 0xae,
|
0xef, 0x17, 0xe5, 0x07, 0xaa, 0x89, 0x9f, 0x97, 0xf7, 0xa2, 0x7d, 0x9a, 0xa3, 0x8a, 0x36, 0xe8,
|
||||||
0x36, 0x54, 0xfb, 0xab, 0xd0, 0xd4, 0x77, 0x2a, 0x99, 0x05, 0x69, 0x28, 0x0c, 0x9d, 0xbc, 0x9b,
|
0xbb, 0x2c, 0xf3, 0xcc, 0xa1, 0x46, 0xd0, 0xd3, 0x60, 0xe2, 0xfe, 0xb6, 0x03, 0x90, 0x8d, 0x8e,
|
||||||
0xb0, 0x34, 0x18, 0x46, 0xc7, 0x64, 0x7e, 0x29, 0xb9, 0x26, 0x91, 0x19, 0x21, 0x8b, 0x02, 0xbe,
|
0x6e, 0xd3, 0xb4, 0x81, 0x10, 0xe9, 0xd8, 0x86, 0x31, 0x78, 0x15, 0x9a, 0xfa, 0x16, 0x26, 0xb3,
|
||||||
0x2f, 0xd1, 0xcc, 0xdc, 0x54, 0x0d, 0x73, 0xe3, 0x7e, 0xa7, 0xa2, 0x23, 0xf1, 0xd9, 0x9c, 0x2f,
|
0x39, 0x0d, 0x85, 0xa1, 0x5b, 0x78, 0x13, 0x96, 0x06, 0xc3, 0xe8, 0x98, 0x0c, 0x36, 0xa5, 0xe3,
|
||||||
0x94, 0x32, 0xb6, 0x55, 0x50, 0x8e, 0x17, 0x04, 0xbe, 0x29, 0x4a, 0x76, 0x78, 0xe9, 0x21, 0xfe,
|
0x24, 0x32, 0x87, 0x64, 0x51, 0xc0, 0xf7, 0x25, 0x9a, 0x19, 0xa8, 0xaa, 0x61, 0xa0, 0xdc, 0xef,
|
||||||
0x5d, 0x58, 0x8c, 0x85, 0xf6, 0x51, 0xaa, 0xa9, 0xfa, 0x1c, 0xd5, 0xb4, 0x10, 0x5b, 0x36, 0xe9,
|
0x54, 0x74, 0xec, 0x3e, 0x9b, 0xf3, 0x85, 0x52, 0xc6, 0xb6, 0x0a, 0xea, 0xf4, 0x82, 0x50, 0x39,
|
||||||
0x93, 0xd0, 0xf2, 0xfb, 0x67, 0x3c, 0x4e, 0x03, 0x3a, 0x46, 0x91, 0x43, 0x20, 0x14, 0xea, 0x92,
|
0xc5, 0xd5, 0x0e, 0x2f, 0x3d, 0xf6, 0xbf, 0x0b, 0x8b, 0xb1, 0xd0, 0x57, 0x4a, 0x99, 0x55, 0x9f,
|
||||||
0x81, 0x93, 0x9d, 0xbe, 0x09, 0x4b, 0x32, 0x0b, 0x47, 0x53, 0xca, 0xec, 0xd0, 0x0c, 0x46, 0x42,
|
0xa3, 0xcc, 0x16, 0x62, 0xcb, 0x8a, 0x7d, 0x12, 0x5a, 0x7e, 0xff, 0x8c, 0xc7, 0x69, 0x40, 0x07,
|
||||||
0xf7, 0x4f, 0x55, 0xd0, 0xdf, 0xde, 0xc3, 0x8b, 0x57, 0xc4, 0x9c, 0x5d, 0x25, 0x37, 0xbb, 0x4f,
|
0x2f, 0x72, 0x21, 0x84, 0x0a, 0x5e, 0x32, 0x70, 0xb2, 0xec, 0x37, 0x61, 0x49, 0xe6, 0xed, 0x68,
|
||||||
0xc8, 0x00, 0x7c, 0x5f, 0x9d, 0xd5, 0x66, 0x8c, 0x1b, 0xf1, 0xbe, 0xbc, 0x30, 0xb1, 0x97, 0xb4,
|
0x4a, 0x99, 0x4f, 0x9a, 0xc1, 0x48, 0xe8, 0xfe, 0xa9, 0xba, 0x26, 0xb0, 0xf7, 0xf0, 0xe2, 0x15,
|
||||||
0xfa, 0x22, 0x4b, 0xea, 0x7e, 0xec, 0xc0, 0xdc, 0x7e, 0x34, 0xde, 0x97, 0xb9, 0x01, 0x24, 0x08,
|
0x31, 0x67, 0x57, 0xc9, 0xcd, 0xee, 0x13, 0x32, 0x64, 0xdf, 0x57, 0xa7, 0xbb, 0x19, 0xe3, 0x0e,
|
||||||
0x3a, 0x8f, 0x4d, 0x15, 0x9f, 0x93, 0x35, 0x50, 0x6a, 0x87, 0x17, 0xf2, 0x76, 0xf8, 0x17, 0xe0,
|
0xbd, 0x2f, 0xaf, 0x58, 0xec, 0x25, 0xad, 0xbe, 0xc8, 0x92, 0xba, 0x1f, 0x3b, 0x30, 0xb7, 0x1f,
|
||||||
0x25, 0x8a, 0x14, 0xc4, 0xd1, 0x38, 0x8a, 0x51, 0x18, 0xfd, 0xa1, 0x30, 0xba, 0x51, 0x98, 0x9e,
|
0x8d, 0xf7, 0x65, 0x36, 0x01, 0x09, 0x82, 0xce, 0x7c, 0x53, 0xc5, 0xe7, 0xe4, 0x19, 0x94, 0x5a,
|
||||||
0x2a, 0x35, 0xf6, 0x3c, 0x12, 0x3a, 0x92, 0xe1, 0x51, 0x42, 0x38, 0xca, 0xd2, 0x6f, 0x10, 0xda,
|
0xee, 0x85, 0xbc, 0xe5, 0xfe, 0x05, 0x78, 0x89, 0x62, 0x0b, 0x71, 0x34, 0x8e, 0x62, 0x14, 0x46,
|
||||||
0xad, 0x58, 0xe1, 0x7e, 0x16, 0xea, 0xe4, 0xf8, 0xd2, 0xb4, 0xde, 0x80, 0xfa, 0x69, 0x34, 0xee,
|
0x7f, 0x28, 0xcc, 0x74, 0x14, 0xa6, 0xa7, 0x4a, 0x8d, 0x3d, 0x8f, 0x84, 0x0e, 0x71, 0x78, 0xf8,
|
||||||
0x9e, 0x06, 0x61, 0xaa, 0x84, 0x7b, 0x31, 0xf3, 0x48, 0xf7, 0x69, 0x41, 0x34, 0x81, 0xfb, 0x07,
|
0x10, 0xae, 0xb5, 0xf4, 0x34, 0x84, 0x76, 0x2b, 0x56, 0xb8, 0x9f, 0x85, 0x3a, 0xb9, 0xca, 0x34,
|
||||||
0x35, 0x98, 0x7b, 0x18, 0x9e, 0x45, 0x41, 0x8f, 0xee, 0x07, 0x46, 0x7c, 0x14, 0xa9, 0xac, 0x3e,
|
0xad, 0x37, 0xa0, 0x7e, 0x1a, 0x8d, 0xbb, 0xa7, 0x41, 0x98, 0x2a, 0xe1, 0x5e, 0xcc, 0x7c, 0xd8,
|
||||||
0xfc, 0x8d, 0x4b, 0x41, 0xd9, 0x2f, 0xe3, 0x54, 0x06, 0xf8, 0x55, 0x11, 0xcd, 0x7d, 0x9c, 0x65,
|
0x7d, 0x5a, 0x10, 0x4d, 0xe0, 0xfe, 0x41, 0x0d, 0xe6, 0x1e, 0x86, 0x67, 0x51, 0xd0, 0xa3, 0x1b,
|
||||||
0xde, 0x0a, 0xd1, 0x31, 0x10, 0x74, 0xfa, 0x63, 0x33, 0x49, 0x59, 0x96, 0xb2, 0xb4, 0xc8, 0x9a,
|
0x85, 0x11, 0x1f, 0x45, 0x2a, 0x0f, 0x10, 0x7f, 0xe3, 0x52, 0x50, 0xbe, 0xcc, 0x38, 0x95, 0x57,
|
||||||
0x91, 0x16, 0x49, 0xb7, 0x49, 0x22, 0x8f, 0x41, 0x5e, 0x74, 0xab, 0x22, 0x1d, 0x52, 0x62, 0x2e,
|
0x02, 0xaa, 0x88, 0x0e, 0x42, 0x9c, 0xe5, 0xea, 0x0a, 0xd1, 0x31, 0x10, 0x3c, 0x26, 0xc4, 0x66,
|
||||||
0x22, 0x3c, 0xe4, 0x38, 0xcc, 0xc9, 0x43, 0x8a, 0x09, 0xa2, 0x73, 0x21, 0x3e, 0x10, 0x34, 0x42,
|
0x5a, 0xb3, 0x2c, 0x65, 0x89, 0x94, 0x35, 0x23, 0x91, 0x92, 0xee, 0x9f, 0x44, 0xe6, 0x83, 0xbc,
|
||||||
0xf9, 0x9a, 0x10, 0x3a, 0x62, 0xf9, 0x3c, 0xe7, 0xba, 0xe0, 0xf9, 0x1c, 0x8c, 0x1a, 0xba, 0xcf,
|
0x1a, 0x57, 0x45, 0x3a, 0xd6, 0xc4, 0x5c, 0xc4, 0x84, 0xc8, 0xd5, 0x98, 0x93, 0xc7, 0x1a, 0x13,
|
||||||
0xb5, 0x22, 0x15, 0x73, 0x00, 0x91, 0x59, 0x9c, 0xc7, 0x8d, 0xa3, 0x8d, 0x48, 0x50, 0x52, 0x47,
|
0x44, 0x77, 0x44, 0x7c, 0x20, 0x68, 0x84, 0xf2, 0x35, 0x21, 0x74, 0xdd, 0xf2, 0x99, 0xd1, 0x75,
|
||||||
0x1b, 0x64, 0x14, 0x7f, 0x38, 0x3c, 0xf6, 0x7b, 0x4f, 0x29, 0x8d, 0x9d, 0xf2, 0x91, 0xea, 0x9e,
|
0xc1, 0xf3, 0x39, 0x18, 0x35, 0x74, 0x9f, 0x6b, 0x45, 0x2a, 0xe6, 0x00, 0x22, 0x17, 0x39, 0x8f,
|
||||||
0x0d, 0x52, 0x26, 0x42, 0xb6, 0x9b, 0x74, 0x1f, 0x59, 0xf5, 0x4c, 0x88, 0x6d, 0x41, 0x83, 0x8e,
|
0x1b, 0x87, 0x21, 0x91, 0xd2, 0xa4, 0x0e, 0x43, 0xc8, 0x28, 0xfe, 0x70, 0x78, 0xec, 0xf7, 0x9e,
|
||||||
0x73, 0x72, 0x3f, 0x17, 0x69, 0x3f, 0x5b, 0xe6, 0x79, 0x8f, 0x76, 0xd4, 0x24, 0x32, 0xef, 0x2c,
|
0x52, 0xe2, 0x3b, 0x65, 0x30, 0xd5, 0x3d, 0x1b, 0xa4, 0xdc, 0x85, 0x6c, 0x37, 0xe9, 0x06, 0xb3,
|
||||||
0x96, 0xec, 0x3b, 0x0b, 0xa1, 0x34, 0xe5, 0x55, 0x4f, 0x8b, 0x7a, 0xcb, 0x00, 0xb4, 0xa6, 0x72,
|
0xea, 0x99, 0x10, 0xdb, 0x82, 0x06, 0x1d, 0x00, 0xe5, 0x7e, 0x2e, 0xd2, 0x7e, 0xb6, 0xcc, 0x13,
|
||||||
0xc1, 0x04, 0xc1, 0x32, 0x11, 0x58, 0x18, 0xbb, 0x0e, 0xf3, 0x78, 0x08, 0x19, 0xfb, 0x41, 0xbf,
|
0x22, 0xed, 0xa8, 0x49, 0x64, 0xde, 0x72, 0x2c, 0xd9, 0xb7, 0x1c, 0x42, 0x69, 0xca, 0xcb, 0xa1,
|
||||||
0xcd, 0xf4, 0x59, 0x48, 0x63, 0xd8, 0x86, 0xfa, 0x4d, 0x57, 0x32, 0x2b, 0xb4, 0x2a, 0x16, 0x86,
|
0x16, 0xf5, 0x96, 0x01, 0x68, 0x4d, 0xe5, 0x82, 0x09, 0x82, 0x65, 0x22, 0xb0, 0x30, 0x76, 0x1d,
|
||||||
0x6b, 0xa3, 0xcb, 0x24, 0x44, 0xab, 0x62, 0x47, 0x2d, 0xd0, 0x4d, 0x81, 0x6d, 0xf7, 0xfb, 0x92,
|
0xe6, 0xf1, 0xd8, 0x32, 0xf6, 0x83, 0x7e, 0x9b, 0xe9, 0xd3, 0x93, 0xc6, 0xb0, 0x0d, 0xf5, 0x9b,
|
||||||
0x37, 0xf5, 0xd1, 0x37, 0xe3, 0x2a, 0xc7, 0xe2, 0xaa, 0x92, 0xdd, 0xad, 0x94, 0xef, 0xee, 0x73,
|
0x2e, 0x71, 0x56, 0x68, 0x55, 0x2c, 0x0c, 0xd7, 0x46, 0x97, 0x49, 0x88, 0x56, 0xc5, 0x8e, 0x5a,
|
||||||
0xd7, 0xc0, 0xdd, 0x83, 0xc6, 0xa1, 0x91, 0xca, 0x4d, 0x4c, 0xae, 0x92, 0xb8, 0xa5, 0x60, 0x18,
|
0xa0, 0x9b, 0x02, 0xdb, 0xee, 0xf7, 0x25, 0x6f, 0xea, 0xc3, 0x72, 0xc6, 0x55, 0x8e, 0xc5, 0x55,
|
||||||
0x88, 0x31, 0x9c, 0x8a, 0x39, 0x1c, 0xf7, 0xcf, 0x1c, 0x60, 0x07, 0x41, 0x92, 0xea, 0xe1, 0x8b,
|
0x25, 0xbb, 0x5b, 0x29, 0xdf, 0xdd, 0xe7, 0xae, 0x81, 0xbb, 0x07, 0x8d, 0x43, 0x23, 0xf9, 0x9b,
|
||||||
0xbe, 0x5d, 0x68, 0xea, 0x00, 0x45, 0x96, 0x9b, 0x65, 0x61, 0x48, 0x43, 0x43, 0xe9, 0x46, 0x27,
|
0x98, 0x5c, 0xa5, 0x7d, 0x4b, 0xc1, 0x30, 0x10, 0x63, 0x38, 0x15, 0x73, 0x38, 0xee, 0x9f, 0x39,
|
||||||
0x27, 0x09, 0x57, 0x99, 0x14, 0x16, 0x86, 0x1c, 0x8a, 0x3e, 0x0e, 0xfa, 0x0b, 0x81, 0xe8, 0x21,
|
0xc0, 0x0e, 0x82, 0x24, 0xd5, 0xc3, 0x17, 0x7d, 0xbb, 0xd0, 0xd4, 0x21, 0x8d, 0x2c, 0x9b, 0xcb,
|
||||||
0x91, 0x19, 0x15, 0x05, 0x1c, 0xf5, 0x6c, 0xcc, 0xcf, 0x78, 0x9c, 0x68, 0xd1, 0xd2, 0x65, 0x9d,
|
0xc2, 0x90, 0x86, 0x86, 0xd2, 0x8d, 0x4e, 0x4e, 0x12, 0xae, 0x72, 0x2f, 0x2c, 0x0c, 0x39, 0x14,
|
||||||
0x42, 0x96, 0x5f, 0xe5, 0x4d, 0x98, 0xd7, 0xed, 0xda, 0x2a, 0x44, 0x51, 0xea, 0x7a, 0x54, 0x55,
|
0x7d, 0x1c, 0xf4, 0x17, 0x02, 0xd1, 0x43, 0x22, 0x73, 0x30, 0x0a, 0x38, 0xea, 0xd9, 0x98, 0x9f,
|
||||||
0xe4, 0xc3, 0x5b, 0x83, 0x16, 0x6a, 0xb3, 0x58, 0xc1, 0x6e, 0x03, 0x3b, 0x09, 0xe2, 0x3c, 0xf9,
|
0xf1, 0x38, 0xd1, 0xa2, 0xa5, 0xcb, 0x3a, 0xe9, 0x2c, 0xbf, 0xca, 0x9b, 0x30, 0xaf, 0xdb, 0xb5,
|
||||||
0x0c, 0x91, 0x97, 0xd4, 0xb8, 0x1f, 0xc0, 0x8a, 0xec, 0xd2, 0x74, 0x6e, 0xec, 0x4d, 0x74, 0x2e,
|
0x55, 0x88, 0xa2, 0xd4, 0xf5, 0xa8, 0xaa, 0xc8, 0xeb, 0xb7, 0x06, 0x2d, 0xd4, 0x66, 0xb1, 0x82,
|
||||||
0x63, 0xe4, 0x4a, 0x91, 0x91, 0xdd, 0xff, 0x76, 0x60, 0x4e, 0xee, 0x34, 0x6d, 0x4b, 0x3e, 0xa7,
|
0xdd, 0x06, 0x76, 0x12, 0xc4, 0x79, 0xf2, 0x19, 0x22, 0x2f, 0xa9, 0x71, 0x3f, 0x80, 0x15, 0xd9,
|
||||||
0xbf, 0xee, 0x59, 0x18, 0x6b, 0x5b, 0xd9, 0xdc, 0xc4, 0xf5, 0x52, 0x75, 0x15, 0x14, 0xd4, 0x4c,
|
0xa5, 0xe9, 0xdc, 0xd8, 0x9b, 0xe8, 0x5c, 0xc6, 0xc8, 0x95, 0x22, 0x23, 0xbb, 0xff, 0xed, 0xc0,
|
||||||
0x99, 0x82, 0x62, 0x50, 0x1d, 0xfb, 0xe9, 0x29, 0x9d, 0x4c, 0xeb, 0x1e, 0xfd, 0x66, 0x2d, 0x11,
|
0x9c, 0xdc, 0x69, 0xda, 0x96, 0xfc, 0x2b, 0x80, 0xba, 0x67, 0x61, 0xac, 0x6d, 0xe5, 0x7f, 0x13,
|
||||||
0x2d, 0x11, 0x8a, 0x90, 0x22, 0x25, 0x65, 0x8f, 0x1a, 0x84, 0xbd, 0x2d, 0x3e, 0x6a, 0xb8, 0x06,
|
0xd7, 0x4b, 0xd5, 0x55, 0x50, 0x50, 0x33, 0x65, 0x0a, 0x8a, 0x41, 0x75, 0xec, 0xa7, 0xa7, 0x74,
|
||||||
0x75, 0x1a, 0x40, 0x37, 0x0b, 0x86, 0x64, 0x00, 0x72, 0xae, 0x28, 0x90, 0x84, 0xc9, 0x54, 0xcd,
|
0x96, 0xad, 0x7b, 0xf4, 0x9b, 0xb5, 0x44, 0x7c, 0x45, 0x28, 0x42, 0x8a, 0xad, 0x94, 0x3d, 0x83,
|
||||||
0x0c, 0xc1, 0xf3, 0x09, 0xa5, 0xba, 0x88, 0x56, 0xf5, 0x1d, 0x95, 0x4c, 0xd9, 0xcb, 0xe0, 0x8c,
|
0x10, 0xf6, 0xb6, 0xf8, 0x0c, 0xe2, 0x1a, 0xd4, 0x69, 0x00, 0xdd, 0x2c, 0x7c, 0x92, 0x01, 0xc8,
|
||||||
0x23, 0xe4, 0x00, 0xf2, 0x1c, 0x21, 0x49, 0x3d, 0x5d, 0xef, 0x76, 0xa0, 0xbd, 0xcb, 0x87, 0x3c,
|
0xb9, 0xa2, 0x40, 0x12, 0x26, 0x93, 0x3b, 0x33, 0xc4, 0x5d, 0x13, 0x3b, 0x2f, 0x97, 0x40, 0xdf,
|
||||||
0xe5, 0xdb, 0xc3, 0x61, 0xbe, 0xfd, 0x97, 0xe0, 0x6a, 0x49, 0x9d, 0xf4, 0x67, 0xbf, 0x04, 0x6b,
|
0x6a, 0xc9, 0x24, 0xbf, 0x0c, 0xce, 0x38, 0x42, 0x0e, 0x20, 0xcf, 0x11, 0x92, 0xd4, 0xd3, 0xf5,
|
||||||
0xdb, 0x22, 0xbd, 0xe9, 0xa7, 0x95, 0x39, 0xe0, 0xb6, 0x61, 0x3d, 0xdf, 0xa4, 0xec, 0xec, 0x3e,
|
0x6e, 0x07, 0xda, 0xbb, 0x7c, 0xc8, 0x53, 0xbe, 0x3d, 0x1c, 0xe6, 0xdb, 0x7f, 0x09, 0xae, 0x96,
|
||||||
0x2c, 0xef, 0xf2, 0xe3, 0xc9, 0xe0, 0x80, 0x9f, 0x65, 0x1d, 0x31, 0xa8, 0x26, 0xa7, 0xd1, 0xb9,
|
0xd4, 0x49, 0x7f, 0xf6, 0x4b, 0xb0, 0xb6, 0x2d, 0x12, 0xa2, 0x7e, 0x5a, 0xb9, 0x06, 0x6e, 0x1b,
|
||||||
0x14, 0x4c, 0xfa, 0xcd, 0x5e, 0x06, 0x18, 0x22, 0x4d, 0x37, 0x19, 0xf3, 0x9e, 0x4a, 0xc9, 0x26,
|
0xd6, 0xf3, 0x4d, 0xca, 0xce, 0xee, 0xc3, 0xf2, 0x2e, 0x3f, 0x9e, 0x0c, 0x0e, 0xf8, 0x59, 0xd6,
|
||||||
0xe4, 0x68, 0xcc, 0x7b, 0xee, 0x5b, 0xc0, 0xcc, 0x76, 0xe4, 0x7a, 0xa1, 0x3d, 0x9a, 0x1c, 0x77,
|
0x11, 0x83, 0x6a, 0x72, 0x1a, 0x9d, 0x4b, 0xc1, 0xa4, 0xdf, 0xec, 0x65, 0x80, 0x21, 0xd2, 0x74,
|
||||||
0x93, 0x69, 0x92, 0xf2, 0x91, 0xca, 0x35, 0x37, 0x21, 0xf7, 0x26, 0x34, 0x0f, 0xfd, 0xa9, 0xc7,
|
0x93, 0x31, 0xef, 0xa9, 0x24, 0x6e, 0x42, 0x8e, 0xc6, 0xbc, 0xe7, 0xbe, 0x05, 0xcc, 0x6c, 0x47,
|
||||||
0xbf, 0x29, 0x5f, 0x81, 0x6c, 0xc0, 0xdc, 0xd8, 0x9f, 0xa2, 0x9a, 0xd2, 0xf1, 0x1b, 0xaa, 0x76,
|
0xae, 0x17, 0xda, 0xa3, 0xc9, 0x71, 0x37, 0x99, 0x26, 0x29, 0x1f, 0xa9, 0xec, 0x74, 0x13, 0x72,
|
||||||
0xff, 0xb3, 0x02, 0xb3, 0x82, 0x12, 0x5b, 0xed, 0xf3, 0x24, 0x0d, 0x42, 0x71, 0x63, 0x2b, 0x5b,
|
0x6f, 0x42, 0xf3, 0xd0, 0x9f, 0x7a, 0xfc, 0x9b, 0xf2, 0xdd, 0xc8, 0x06, 0xcc, 0x8d, 0xfd, 0x29,
|
||||||
0x35, 0xa0, 0x02, 0x2b, 0x57, 0x4a, 0x58, 0x59, 0x9e, 0x9a, 0x54, 0x7a, 0xab, 0xe4, 0x57, 0x0b,
|
0xaa, 0x29, 0x1d, 0xf1, 0xa1, 0x6a, 0xf7, 0x3f, 0x2b, 0x30, 0x2b, 0x28, 0xb1, 0xd5, 0x3e, 0x4f,
|
||||||
0x43, 0xe6, 0xca, 0xf2, 0x64, 0x44, 0x00, 0x21, 0x03, 0x72, 0x01, 0xbd, 0xcc, 0xea, 0x89, 0xf1,
|
0xd2, 0x20, 0x14, 0x77, 0xbc, 0xb2, 0x55, 0x03, 0x2a, 0xb0, 0x72, 0xa5, 0x84, 0x95, 0xe5, 0xa9,
|
||||||
0x29, 0x29, 0x95, 0x9c, 0x6b, 0x42, 0xa5, 0xb6, 0x75, 0x4e, 0x30, 0x78, 0xc1, 0xb6, 0x16, 0x6c,
|
0x49, 0x25, 0xc4, 0x4a, 0x7e, 0xb5, 0x30, 0x64, 0xae, 0x2c, 0xb3, 0x46, 0x84, 0x1c, 0x32, 0x20,
|
||||||
0xe8, 0xfc, 0x0b, 0xd8, 0x50, 0x71, 0x94, 0x7a, 0x9e, 0x0d, 0x85, 0x17, 0xb0, 0xa1, 0x2e, 0x83,
|
0x17, 0x02, 0xcc, 0xac, 0x9e, 0x18, 0x9f, 0x92, 0x52, 0xc9, 0xb9, 0x26, 0x54, 0x6a, 0x5b, 0xe7,
|
||||||
0xd6, 0x7d, 0xce, 0x3d, 0x8e, 0xde, 0x99, 0xe2, 0xdd, 0xef, 0x3a, 0xd0, 0x92, 0x5c, 0xa4, 0xeb,
|
0x04, 0x83, 0x17, 0x6c, 0x6b, 0xc1, 0x86, 0xce, 0xbf, 0x80, 0x0d, 0x15, 0x47, 0xa9, 0xe7, 0xd9,
|
||||||
0xd8, 0xab, 0x96, 0x17, 0x5a, 0x9a, 0x84, 0xfa, 0x1a, 0x2c, 0x90, 0x6f, 0xa8, 0x23, 0x97, 0x32,
|
0x50, 0x78, 0x01, 0x1b, 0xea, 0x32, 0x68, 0xdd, 0xe7, 0xdc, 0xe3, 0xe8, 0x9d, 0x29, 0xde, 0xfd,
|
||||||
0xcc, 0x6a, 0x81, 0x38, 0x0f, 0x75, 0xbd, 0x34, 0x0a, 0x86, 0x72, 0x53, 0x4c, 0x48, 0x05, 0x3f,
|
0xae, 0x03, 0x2d, 0xc9, 0x45, 0xba, 0x8e, 0xbd, 0x6a, 0x79, 0xa1, 0xa5, 0x69, 0xab, 0xaf, 0xc1,
|
||||||
0x63, 0x5f, 0xa6, 0xb2, 0x38, 0x9e, 0x2e, 0xbb, 0x7f, 0xe5, 0xc0, 0xb2, 0x31, 0x60, 0xc9, 0x85,
|
0x02, 0xf9, 0x86, 0x3a, 0xd6, 0x29, 0x03, 0xb3, 0x16, 0x88, 0xf3, 0x50, 0x17, 0x52, 0xa3, 0x60,
|
||||||
0xef, 0x82, 0x92, 0x06, 0x11, 0xe0, 0x14, 0x92, 0xbb, 0x61, 0x8b, 0x4d, 0xf6, 0x99, 0x45, 0x4c,
|
0x28, 0x37, 0xc5, 0x84, 0x54, 0xb8, 0x34, 0xf6, 0x65, 0xf2, 0x8b, 0xe3, 0xe9, 0xb2, 0xfb, 0x57,
|
||||||
0x9b, 0xe9, 0x4f, 0x69, 0x80, 0xc9, 0x64, 0x24, 0x95, 0xa8, 0x09, 0x21, 0x23, 0x9d, 0x73, 0xfe,
|
0x0e, 0x2c, 0x1b, 0x03, 0x96, 0x5c, 0xf8, 0x2e, 0x28, 0x69, 0x10, 0x21, 0x51, 0x21, 0xb9, 0x1b,
|
||||||
0x54, 0x93, 0x08, 0x35, 0x6e, 0x61, 0x94, 0x26, 0x81, 0x3e, 0xad, 0x26, 0x12, 0xf6, 0xcc, 0x06,
|
0xb6, 0xd8, 0x64, 0x9f, 0x59, 0xc4, 0xb4, 0x99, 0xfe, 0x94, 0x06, 0x98, 0x4c, 0x46, 0x52, 0x89,
|
||||||
0xdd, 0x7f, 0x74, 0x60, 0x45, 0x1c, 0x4e, 0xe4, 0xd1, 0x4f, 0xbf, 0x10, 0x98, 0x15, 0xa7, 0x31,
|
0x9a, 0x10, 0x32, 0xd2, 0x39, 0xe7, 0x4f, 0x35, 0x89, 0x50, 0xe3, 0x16, 0x46, 0x89, 0x15, 0xe8,
|
||||||
0x21, 0x91, 0xfb, 0x57, 0x3c, 0x59, 0x66, 0x9f, 0x79, 0xc1, 0x03, 0x95, 0x4e, 0x8f, 0xb9, 0x60,
|
0xd3, 0x6a, 0x22, 0x61, 0xcf, 0x6c, 0xd0, 0xfd, 0x47, 0x07, 0x56, 0xc4, 0xe1, 0x44, 0x1e, 0xfd,
|
||||||
0x2f, 0x66, 0xca, 0xf6, 0xe2, 0x39, 0x2b, 0x5d, 0x16, 0xd0, 0xab, 0x95, 0x06, 0xf4, 0xee, 0xcd,
|
0xf4, 0x9b, 0x82, 0x59, 0x71, 0x1a, 0x13, 0x12, 0xb9, 0x7f, 0xc5, 0x93, 0x65, 0xf6, 0x99, 0x17,
|
||||||
0x41, 0x2d, 0xe9, 0x45, 0x63, 0xee, 0xae, 0xc3, 0xaa, 0x3d, 0x39, 0xa9, 0x82, 0xbe, 0xe7, 0x40,
|
0x3c, 0x50, 0xe9, 0x84, 0x9a, 0x0b, 0xf6, 0x62, 0xa6, 0x6c, 0x2f, 0x9e, 0xb3, 0xd2, 0x65, 0x21,
|
||||||
0xfb, 0xbe, 0x08, 0x6f, 0x07, 0xe1, 0x60, 0x3f, 0x48, 0xd2, 0x28, 0xd6, 0xcf, 0x9e, 0xae, 0x03,
|
0xc0, 0x5a, 0x69, 0x08, 0xf0, 0xde, 0x1c, 0xd4, 0x92, 0x5e, 0x34, 0xe6, 0xee, 0x3a, 0xac, 0xda,
|
||||||
0x24, 0xa9, 0x1f, 0xa7, 0x22, 0x7d, 0x51, 0x86, 0xdb, 0x32, 0x04, 0xc7, 0xc8, 0xc3, 0xbe, 0xa8,
|
0x93, 0x93, 0x2a, 0xe8, 0x7b, 0x0e, 0xb4, 0xef, 0x8b, 0x80, 0x78, 0x10, 0x0e, 0xf6, 0x83, 0x24,
|
||||||
0x15, 0x7b, 0xa3, 0xcb, 0x05, 0x1f, 0x42, 0x1e, 0x9f, 0x2c, 0x4b, 0xfc, 0xba, 0xc8, 0x37, 0x43,
|
0x8d, 0x62, 0xfd, 0x50, 0xea, 0x3a, 0x40, 0x92, 0xfa, 0x71, 0x2a, 0x12, 0x1e, 0x65, 0x80, 0x2e,
|
||||||
0x5f, 0x81, 0x9f, 0x91, 0x5e, 0x17, 0xe7, 0x92, 0x1c, 0xea, 0xfe, 0x85, 0x03, 0x4b, 0xd9, 0x20,
|
0x43, 0x70, 0x8c, 0x3c, 0xec, 0x8b, 0x5a, 0xb1, 0x37, 0xba, 0x5c, 0xf0, 0x21, 0xe4, 0xf1, 0xc9,
|
||||||
0xf7, 0x10, 0xb4, 0xb5, 0x83, 0x34, 0xbf, 0x99, 0x76, 0x50, 0x81, 0xc0, 0x00, 0xed, 0xb1, 0x1c,
|
0xb2, 0xc4, 0xaf, 0x8b, 0x0c, 0x35, 0xf4, 0x15, 0xf8, 0x19, 0xe9, 0x75, 0x71, 0x2e, 0xc9, 0xa1,
|
||||||
0x9b, 0x81, 0x90, 0xc4, 0xca, 0x52, 0x34, 0x51, 0x0e, 0x8e, 0x09, 0x89, 0x4c, 0x0f, 0xf4, 0x04,
|
0xee, 0x5f, 0x38, 0xb0, 0x94, 0x0d, 0x72, 0x0f, 0x41, 0x5b, 0x3b, 0x48, 0xf3, 0x9b, 0x69, 0x07,
|
||||||
0xa4, 0x57, 0x23, 0x4b, 0x94, 0x7d, 0x3a, 0x4a, 0xe9, 0xab, 0x59, 0x71, 0x30, 0x93, 0x45, 0x65,
|
0x15, 0x3a, 0x0c, 0xd0, 0x1e, 0xcb, 0xb1, 0x19, 0x08, 0x49, 0xac, 0x2c, 0x45, 0x13, 0xe5, 0xe0,
|
||||||
0x4a, 0xe7, 0x08, 0xc5, 0x9f, 0xee, 0xef, 0x38, 0x70, 0xb5, 0x64, 0x71, 0xa5, 0x64, 0xec, 0xc2,
|
0x98, 0x90, 0xc8, 0x0d, 0x41, 0x4f, 0x40, 0x7a, 0x35, 0xb2, 0x44, 0xf9, 0xaa, 0xa3, 0x94, 0xbe,
|
||||||
0xf2, 0x89, 0xae, 0x54, 0x0b, 0x20, 0xc4, 0x63, 0x5d, 0xdd, 0xc7, 0xd8, 0x93, 0xf6, 0x8a, 0x1f,
|
0x9a, 0x15, 0x07, 0x33, 0x59, 0x54, 0xa6, 0x74, 0x8e, 0x50, 0xfc, 0xe9, 0xfe, 0x8e, 0x03, 0x57,
|
||||||
0x68, 0xdf, 0x47, 0x2c, 0xa9, 0x95, 0x42, 0x55, 0xac, 0xd8, 0xfa, 0xdd, 0x19, 0x58, 0x14, 0xf7,
|
0x4b, 0x16, 0x57, 0x4a, 0xc6, 0x2e, 0x2c, 0x9f, 0xe8, 0x4a, 0xb5, 0x00, 0x42, 0x3c, 0xd6, 0xd5,
|
||||||
0x74, 0xe2, 0x01, 0x32, 0x8f, 0xd9, 0x7b, 0x30, 0x27, 0x1f, 0x90, 0xb3, 0x35, 0xd9, 0xad, 0xfd,
|
0x0d, 0x8e, 0x3d, 0x69, 0xaf, 0xf8, 0x81, 0xf6, 0x7d, 0xc4, 0x92, 0x5a, 0x49, 0x57, 0xc5, 0x8a,
|
||||||
0x64, 0xbd, 0xb3, 0x9e, 0x87, 0x25, 0xef, 0xac, 0xfc, 0xfa, 0xc7, 0xff, 0xf2, 0x7b, 0x95, 0x05,
|
0xad, 0xdf, 0x9d, 0x81, 0x45, 0x71, 0xb3, 0x27, 0x9e, 0x2c, 0xf3, 0x98, 0xbd, 0x07, 0x73, 0xf2,
|
||||||
0xd6, 0xb8, 0x73, 0xf6, 0xe6, 0x9d, 0x01, 0x0f, 0x13, 0x6c, 0xe3, 0x97, 0x00, 0xb2, 0xa7, 0xd5,
|
0xc9, 0x39, 0x5b, 0x93, 0xdd, 0xda, 0x8f, 0xdc, 0x3b, 0xeb, 0x79, 0x58, 0xf2, 0xce, 0xca, 0xaf,
|
||||||
0xac, 0xad, 0x7d, 0xb6, 0xdc, 0x9b, 0xf1, 0xce, 0xd5, 0x92, 0x1a, 0xd9, 0xee, 0x55, 0x6a, 0x77,
|
0x7f, 0xfc, 0x2f, 0xbf, 0x57, 0x59, 0x60, 0x8d, 0x3b, 0x67, 0x6f, 0xde, 0x19, 0xf0, 0x30, 0xc1,
|
||||||
0xc5, 0x5d, 0xc4, 0x76, 0x83, 0x30, 0x48, 0xc5, 0x3b, 0xeb, 0x77, 0x9c, 0x4d, 0xd6, 0x87, 0xa6,
|
0x36, 0x7e, 0x09, 0x20, 0x7b, 0x8c, 0xcd, 0xda, 0xda, 0x67, 0xcb, 0xbd, 0x32, 0xef, 0x5c, 0x2d,
|
||||||
0xf9, 0x72, 0x9a, 0xa9, 0xd0, 0x4d, 0xc9, 0xbb, 0xed, 0xce, 0x4b, 0xa5, 0x75, 0x2a, 0x6e, 0x45,
|
0xa9, 0x91, 0xed, 0x5e, 0xa5, 0x76, 0x57, 0xdc, 0x45, 0x6c, 0x37, 0x08, 0x83, 0x54, 0xbc, 0xcc,
|
||||||
0x7d, 0xac, 0xb9, 0x2d, 0xec, 0x63, 0x42, 0x14, 0x59, 0x2f, 0x43, 0x58, 0xb4, 0x1f, 0x48, 0xb3,
|
0x7e, 0xc7, 0xd9, 0x64, 0x7d, 0x68, 0x9a, 0x6f, 0xad, 0x99, 0x0a, 0xdd, 0x94, 0xbc, 0xf4, 0xee,
|
||||||
0x6b, 0x86, 0x58, 0x17, 0x9e, 0x67, 0x77, 0x5e, 0xbe, 0xa0, 0x56, 0xf6, 0xf5, 0x32, 0xf5, 0xb5,
|
0xbc, 0x54, 0x5a, 0xa7, 0xe2, 0x56, 0xd4, 0xc7, 0x9a, 0xdb, 0xc2, 0x3e, 0x26, 0x44, 0x91, 0xf5,
|
||||||
0xe1, 0x32, 0xec, 0xab, 0x47, 0x34, 0xea, 0x79, 0xf6, 0x3b, 0xce, 0xe6, 0xd6, 0xc7, 0xd7, 0xa1,
|
0x32, 0x84, 0x45, 0xfb, 0x49, 0x35, 0xbb, 0x66, 0x88, 0x75, 0xe1, 0x41, 0x77, 0xe7, 0xe5, 0x0b,
|
||||||
0xae, 0x83, 0xad, 0xec, 0x1b, 0xb0, 0x60, 0x5d, 0xa4, 0x32, 0x35, 0x8d, 0xb2, 0x7b, 0xd7, 0xce,
|
0x6a, 0x65, 0x5f, 0x2f, 0x53, 0x5f, 0x1b, 0x2e, 0xc3, 0xbe, 0x7a, 0x44, 0xa3, 0x1e, 0x74, 0xbf,
|
||||||
0xb5, 0xf2, 0x4a, 0xd9, 0xf1, 0x75, 0xea, 0xb8, 0xcd, 0xd6, 0xb1, 0x63, 0x79, 0x13, 0x79, 0x87,
|
0xe3, 0x6c, 0x6e, 0x7d, 0x7c, 0x1d, 0xea, 0x3a, 0xd8, 0xca, 0xbe, 0x01, 0x0b, 0xd6, 0xd5, 0x2b,
|
||||||
0xae, 0x8f, 0x45, 0x6e, 0xeb, 0x53, 0x31, 0xcf, 0xec, 0xf2, 0xd3, 0x9a, 0x67, 0xe1, 0xb2, 0xd4,
|
0x53, 0xd3, 0x28, 0xbb, 0xa9, 0xed, 0x5c, 0x2b, 0xaf, 0x94, 0x1d, 0x5f, 0xa7, 0x8e, 0xdb, 0x6c,
|
||||||
0x9a, 0x67, 0xf1, 0xc6, 0xd4, 0xbd, 0x46, 0xdd, 0xad, 0xb3, 0x55, 0xb3, 0x3b, 0x1d, 0x04, 0xe5,
|
0x1d, 0x3b, 0x96, 0x77, 0x97, 0x77, 0xe8, 0xc2, 0x59, 0x64, 0xc3, 0x3e, 0x15, 0xf3, 0xcc, 0xae,
|
||||||
0x94, 0x8d, 0x6c, 0xbe, 0x9f, 0x66, 0x2f, 0x6b, 0xc6, 0x2a, 0x7b, 0x57, 0xad, 0x59, 0xa4, 0xf8,
|
0x4b, 0xad, 0x79, 0x16, 0xae, 0x57, 0xad, 0x79, 0x16, 0xef, 0x58, 0xdd, 0x6b, 0xd4, 0xdd, 0x3a,
|
||||||
0xb8, 0xda, 0x6d, 0x53, 0x57, 0x8c, 0xd1, 0xf6, 0x99, 0xcf, 0xa7, 0xd9, 0xd7, 0xa0, 0xae, 0x1f,
|
0x5b, 0x35, 0xbb, 0xd3, 0x41, 0x50, 0x4e, 0xf9, 0xcb, 0xe6, 0x8b, 0x6b, 0xf6, 0xb2, 0x66, 0xac,
|
||||||
0x0b, 0xb2, 0x0d, 0xe3, 0x85, 0xa6, 0xf9, 0x82, 0xb1, 0xd3, 0x2e, 0x56, 0x94, 0x31, 0x86, 0xd9,
|
0xb2, 0x97, 0xd8, 0x9a, 0x45, 0x8a, 0xcf, 0xb1, 0xdd, 0x36, 0x75, 0xc5, 0x18, 0x6d, 0x9f, 0xf9,
|
||||||
0x32, 0x32, 0xc6, 0x01, 0xac, 0xc9, 0x33, 0xc0, 0x31, 0xff, 0x51, 0x66, 0x52, 0xf2, 0xea, 0xfb,
|
0xe0, 0x9a, 0x7d, 0x0d, 0xea, 0xfa, 0x79, 0x21, 0xdb, 0x30, 0xde, 0x74, 0x9a, 0x6f, 0x1e, 0x3b,
|
||||||
0xae, 0xc3, 0xde, 0x85, 0x79, 0xf5, 0x06, 0x93, 0xad, 0x97, 0xbf, 0x25, 0xed, 0x6c, 0x14, 0x70,
|
0xed, 0x62, 0x45, 0x19, 0x63, 0x98, 0x2d, 0x23, 0x63, 0x1c, 0xc0, 0x9a, 0x3c, 0x03, 0x1c, 0xf3,
|
||||||
0xa9, 0x3d, 0xbe, 0x02, 0x90, 0xbd, 0x2d, 0xd4, 0x72, 0x56, 0x78, 0xd5, 0xa8, 0x17, 0xb1, 0xf8,
|
0x1f, 0x65, 0x26, 0x25, 0xef, 0xc4, 0xef, 0x3a, 0xec, 0x5d, 0x98, 0x57, 0xaf, 0x36, 0xd9, 0x7a,
|
||||||
0x10, 0xd1, 0x5d, 0xa7, 0xa9, 0xb6, 0x18, 0xc9, 0x59, 0xc8, 0xcf, 0x55, 0x1a, 0xfd, 0x2e, 0x34,
|
0xf9, 0xeb, 0xd3, 0xce, 0x46, 0x01, 0x97, 0xda, 0xe3, 0x2b, 0x00, 0xd9, 0x6b, 0x44, 0x2d, 0x67,
|
||||||
0x8c, 0xe7, 0x85, 0x4c, 0xb5, 0x50, 0x7c, 0x9a, 0xd8, 0xe9, 0x94, 0x55, 0xc9, 0x01, 0x7e, 0x01,
|
0x85, 0x77, 0x90, 0x7a, 0x11, 0x8b, 0x4f, 0x17, 0xdd, 0x75, 0x9a, 0x6a, 0x8b, 0x91, 0x9c, 0x85,
|
||||||
0x16, 0xac, 0x77, 0x82, 0x9a, 0x91, 0xcb, 0x5e, 0x21, 0x6a, 0x46, 0x2e, 0x7f, 0x5a, 0xf8, 0x55,
|
0xfc, 0x5c, 0x25, 0xde, 0xef, 0x42, 0xc3, 0x78, 0x90, 0xc8, 0x54, 0x0b, 0xc5, 0xc7, 0x8c, 0x9d,
|
||||||
0x68, 0x18, 0xaf, 0xfa, 0x98, 0x91, 0x20, 0x98, 0x7b, 0xcf, 0xa7, 0x47, 0x54, 0xf6, 0x08, 0x70,
|
0x4e, 0x59, 0x95, 0x1c, 0xe0, 0x17, 0x60, 0xc1, 0x7a, 0x59, 0xa8, 0x19, 0xb9, 0xec, 0xdd, 0xa2,
|
||||||
0x95, 0xe6, 0xbb, 0xe8, 0xd6, 0x71, 0xbe, 0x94, 0x4b, 0x8e, 0x7b, 0xfa, 0x0d, 0x58, 0xb4, 0xdf,
|
0x66, 0xe4, 0xf2, 0xc7, 0x88, 0x5f, 0x85, 0x86, 0xf1, 0x0e, 0x90, 0x19, 0x29, 0x85, 0xb9, 0x17,
|
||||||
0xf9, 0x69, 0x21, 0x28, 0x7d, 0x31, 0xa8, 0x85, 0xe0, 0x82, 0xc7, 0x81, 0x92, 0x7f, 0x36, 0x57,
|
0x80, 0x7a, 0x44, 0x65, 0xcf, 0x06, 0x57, 0x69, 0xbe, 0x8b, 0x6e, 0x1d, 0xe7, 0x4b, 0xd9, 0xe7,
|
||||||
0x74, 0x27, 0x77, 0x3e, 0x92, 0xb7, 0x86, 0xcf, 0xd8, 0x97, 0x50, 0xd2, 0x65, 0x72, 0x3f, 0xcb,
|
0xb8, 0xa7, 0xdf, 0x80, 0x45, 0xfb, 0x65, 0xa0, 0x16, 0x82, 0xd2, 0x37, 0x86, 0x5a, 0x08, 0x2e,
|
||||||
0x5e, 0x37, 0xda, 0x4f, 0x00, 0x34, 0x73, 0x16, 0xde, 0x01, 0xb8, 0xcb, 0xd4, 0x78, 0x83, 0x65,
|
0x78, 0x4e, 0x28, 0xf9, 0x67, 0x73, 0x45, 0x77, 0x72, 0xe7, 0x23, 0x79, 0xcf, 0xf8, 0x8c, 0x7d,
|
||||||
0x33, 0x10, 0xea, 0x9b, 0x92, 0xfc, 0x0d, 0xf5, 0x6d, 0xbe, 0x03, 0x30, 0xd4, 0xb7, 0xf5, 0x16,
|
0x09, 0x25, 0x5d, 0x3e, 0x07, 0x60, 0xd9, 0x7b, 0x48, 0xfb, 0xd1, 0x80, 0x66, 0xce, 0xc2, 0xcb,
|
||||||
0x20, 0xaf, 0xbe, 0xd3, 0x00, 0xdb, 0x08, 0x61, 0x29, 0x97, 0x21, 0xa3, 0x79, 0xbb, 0x3c, 0xa5,
|
0x01, 0x77, 0x99, 0x1a, 0x6f, 0xb0, 0x6c, 0x06, 0x42, 0x7d, 0xd3, 0xb3, 0x00, 0x43, 0x7d, 0x9b,
|
||||||
0xb0, 0x73, 0xfd, 0xf9, 0x89, 0x35, 0xb6, 0x56, 0x50, 0xda, 0xe0, 0x8e, 0xca, 0x00, 0xfd, 0x65,
|
0x2f, 0x07, 0x0c, 0xf5, 0x6d, 0xbd, 0x1e, 0xc8, 0xab, 0xef, 0x34, 0xc0, 0x36, 0x42, 0x58, 0xca,
|
||||||
0x68, 0x9a, 0xef, 0xb3, 0xb4, 0x42, 0x2f, 0x79, 0x55, 0xa6, 0x15, 0x7a, 0xd9, 0x83, 0x2e, 0xb5,
|
0xe5, 0xd4, 0x68, 0xde, 0x2e, 0x4f, 0x42, 0xec, 0x5c, 0x7f, 0x7e, 0x2a, 0x8e, 0xad, 0x15, 0x94,
|
||||||
0xb9, 0xac, 0x69, 0x76, 0x83, 0x9b, 0x6b, 0x3f, 0x50, 0xc9, 0x34, 0x5c, 0xd9, 0xbb, 0x9c, 0x4c,
|
0x36, 0xb8, 0xa3, 0x72, 0x46, 0x7f, 0x19, 0x9a, 0xe6, 0x8b, 0x2e, 0xad, 0xd0, 0x4b, 0xde, 0xa1,
|
||||||
0xc3, 0x95, 0xbe, 0x6a, 0x51, 0x9b, 0xcb, 0x56, 0xac, 0xb9, 0x88, 0x90, 0x30, 0xfb, 0x2a, 0x2c,
|
0x69, 0x85, 0x5e, 0xf6, 0x04, 0x4c, 0x6d, 0x2e, 0x6b, 0x9a, 0xdd, 0xe0, 0xe6, 0xda, 0x4f, 0x5a,
|
||||||
0x19, 0xe9, 0x67, 0x47, 0xd3, 0xb0, 0xa7, 0x19, 0xb5, 0x98, 0xba, 0xdc, 0x29, 0x73, 0x14, 0xdd,
|
0x32, 0x0d, 0x57, 0xf6, 0x92, 0x27, 0xd3, 0x70, 0xa5, 0xef, 0x60, 0xd4, 0xe6, 0xb2, 0x15, 0x6b,
|
||||||
0x0d, 0x6a, 0x7f, 0xd9, 0xb5, 0x26, 0x81, 0x4c, 0xba, 0x03, 0x0d, 0x33, 0xb5, 0xed, 0x39, 0xed,
|
0x2e, 0x22, 0x24, 0xcc, 0xbe, 0x0a, 0x4b, 0x46, 0xc2, 0xda, 0xd1, 0x34, 0xec, 0x69, 0x46, 0x2d,
|
||||||
0x6e, 0x18, 0x55, 0x66, 0x9e, 0xee, 0x5d, 0x87, 0xfd, 0xa1, 0x03, 0x4d, 0x2b, 0x51, 0xcc, 0xba,
|
0x26, 0x3b, 0x77, 0xca, 0x1c, 0x45, 0x77, 0x83, 0xda, 0x5f, 0x76, 0xad, 0x49, 0x20, 0x93, 0xee,
|
||||||
0xf8, 0xc8, 0xb5, 0xd3, 0x36, 0xeb, 0xcc, 0x86, 0x5c, 0x8f, 0x06, 0x79, 0xb0, 0xf9, 0x05, 0x6b,
|
0x40, 0xc3, 0x4c, 0x86, 0x7b, 0x4e, 0xbb, 0x1b, 0x46, 0x95, 0x99, 0xd9, 0x7b, 0xd7, 0x61, 0x7f,
|
||||||
0x11, 0x3e, 0xb2, 0x0e, 0x1c, 0xb7, 0xf3, 0x4f, 0xf9, 0x9f, 0xe5, 0x09, 0xcc, 0xf4, 0xee, 0x67,
|
0xe8, 0x40, 0xd3, 0x4a, 0x2d, 0xb3, 0x2e, 0x3e, 0x72, 0xed, 0xb4, 0xcd, 0x3a, 0xb3, 0x21, 0xd7,
|
||||||
0x77, 0x1d, 0xf6, 0x27, 0x0e, 0x2c, 0xda, 0xc7, 0x64, 0xbd, 0x55, 0xa5, 0x07, 0x72, 0xbd, 0x55,
|
0xa3, 0x41, 0x1e, 0x6c, 0x7e, 0xc1, 0x5a, 0x84, 0x8f, 0xac, 0x03, 0xc7, 0xed, 0xfc, 0xe3, 0xff,
|
||||||
0x17, 0x9c, 0xad, 0x7f, 0x06, 0xa3, 0x64, 0xef, 0x88, 0x3f, 0xd4, 0x50, 0x31, 0x1b, 0x66, 0xe8,
|
0x67, 0x79, 0x02, 0x33, 0x21, 0xfc, 0xd9, 0x5d, 0x87, 0xfd, 0x89, 0x03, 0x8b, 0xf6, 0x31, 0x59,
|
||||||
0xe6, 0xfc, 0xb6, 0x9a, 0xff, 0x26, 0x71, 0xcb, 0xb9, 0xeb, 0xb0, 0xaf, 0x8b, 0x7f, 0x15, 0x90,
|
0x6f, 0x55, 0xe9, 0x81, 0x5c, 0x6f, 0xd5, 0x05, 0x67, 0xeb, 0x9f, 0xc1, 0x28, 0xd9, 0x3b, 0xe2,
|
||||||
0xdf, 0x12, 0x77, 0xbc, 0xe8, 0xf7, 0xee, 0x6b, 0x34, 0x97, 0xeb, 0xee, 0x55, 0x6b, 0x2e, 0x79,
|
0x2f, 0x38, 0x54, 0xcc, 0x86, 0x19, 0xba, 0x39, 0xbf, 0xad, 0xe6, 0xff, 0x4f, 0xdc, 0x72, 0xee,
|
||||||
0xe3, 0xb4, 0x2d, 0x46, 0x27, 0xff, 0x2c, 0x22, 0x53, 0xdb, 0x85, 0x3f, 0x90, 0xb8, 0x78, 0x90,
|
0x3a, 0xec, 0xeb, 0xe2, 0x7f, 0x08, 0xe4, 0xb7, 0xc4, 0x1d, 0x2f, 0xfa, 0xbd, 0xfb, 0x1a, 0xcd,
|
||||||
0x23, 0x31, 0x48, 0x49, 0x6e, 0xb1, 0xf0, 0x0b, 0x36, 0xe3, 0x6e, 0xd2, 0x58, 0x5f, 0x73, 0x5f,
|
0xe5, 0xba, 0x7b, 0xd5, 0x9a, 0x4b, 0xde, 0x38, 0x6d, 0x8b, 0xd1, 0xc9, 0xbf, 0x97, 0xc8, 0xd4,
|
||||||
0xb9, 0x70, 0xac, 0x77, 0xe8, 0x90, 0x8b, 0x23, 0x3e, 0x04, 0xc8, 0xe2, 0xab, 0x2c, 0x17, 0xdf,
|
0x76, 0xe1, 0x2f, 0x27, 0x2e, 0x1e, 0xe4, 0x48, 0x0c, 0x52, 0x92, 0x5b, 0x2c, 0xfc, 0x82, 0xcd,
|
||||||
0xd3, 0x96, 0xab, 0x18, 0x82, 0xb5, 0xe5, 0x44, 0x85, 0x01, 0xb1, 0xc5, 0xaf, 0x09, 0x75, 0xf2,
|
0xb8, 0x9b, 0x34, 0xd6, 0xd7, 0xdc, 0x57, 0x2e, 0x1c, 0xeb, 0x1d, 0x3a, 0xe4, 0xe2, 0x88, 0x0f,
|
||||||
0x50, 0x45, 0x06, 0xaf, 0x1a, 0x2a, 0xc3, 0x0e, 0x84, 0x76, 0x3a, 0x65, 0x55, 0x65, 0xca, 0x44,
|
0x01, 0xb2, 0xf8, 0x2a, 0xcb, 0xc5, 0xf7, 0xb4, 0xe5, 0x2a, 0x86, 0x60, 0x6d, 0x39, 0x51, 0x61,
|
||||||
0x87, 0x19, 0xdf, 0x87, 0x85, 0x83, 0x28, 0x7a, 0x3a, 0x19, 0xeb, 0xdb, 0x0a, 0x3b, 0xfe, 0xb4,
|
0x40, 0x6c, 0xf1, 0x6b, 0x42, 0x9d, 0x3c, 0x54, 0x91, 0xc1, 0xab, 0x86, 0xca, 0xb0, 0x03, 0xa1,
|
||||||
0xef, 0x27, 0xa7, 0x9d, 0xdc, 0x2c, 0xdc, 0x1b, 0xd4, 0x54, 0x87, 0xb5, 0x8d, 0xa6, 0xee, 0x7c,
|
0x9d, 0x4e, 0x59, 0x55, 0x99, 0x32, 0xd1, 0x61, 0xc6, 0xf7, 0x61, 0xe1, 0x20, 0x8a, 0x9e, 0x4e,
|
||||||
0x94, 0xc5, 0x6f, 0x9f, 0x31, 0x1f, 0x96, 0xb5, 0x53, 0xa1, 0x07, 0xde, 0xb1, 0x9b, 0x31, 0x23,
|
0xc6, 0xfa, 0xb6, 0xc2, 0x8e, 0x3f, 0xed, 0xfb, 0xc9, 0x69, 0x27, 0x37, 0x0b, 0xf7, 0x06, 0x35,
|
||||||
0x8f, 0x85, 0x2e, 0x2c, 0x37, 0x4f, 0x8d, 0xf6, 0x4e, 0xa2, 0xda, 0xbc, 0xeb, 0xb0, 0x43, 0x68,
|
0xd5, 0x61, 0x6d, 0xa3, 0xa9, 0x3b, 0x1f, 0x65, 0xf1, 0xdb, 0x67, 0xcc, 0x87, 0x65, 0xed, 0x54,
|
||||||
0xee, 0xf2, 0x5e, 0xd4, 0xe7, 0x32, 0x88, 0xb3, 0x92, 0x0d, 0x5c, 0x47, 0x7f, 0x3a, 0x0b, 0x16,
|
0xe8, 0x81, 0x77, 0xec, 0x66, 0xcc, 0xc8, 0x63, 0xa1, 0x0b, 0xcb, 0xcd, 0x53, 0xa3, 0xbd, 0x93,
|
||||||
0x68, 0xeb, 0xed, 0xb1, 0x3f, 0x8d, 0xf9, 0x37, 0xef, 0x7c, 0x24, 0xc3, 0x43, 0xcf, 0x94, 0xde,
|
0xa8, 0x36, 0xef, 0x3a, 0xec, 0x10, 0x9a, 0xbb, 0xbc, 0x17, 0xf5, 0xb9, 0x0c, 0xe2, 0xac, 0x64,
|
||||||
0x56, 0xf1, 0x33, 0x4b, 0x6f, 0xe7, 0x02, 0x6e, 0x96, 0xde, 0x2e, 0x04, 0xdc, 0xac, 0xa5, 0x56,
|
0x03, 0xd7, 0xd1, 0x9f, 0xce, 0x82, 0x05, 0xda, 0x7a, 0x7b, 0xec, 0x4f, 0x63, 0xfe, 0xcd, 0x3b,
|
||||||
0xf1, 0x3b, 0x36, 0x84, 0xe5, 0x42, 0x8c, 0x8e, 0xbd, 0xa2, 0x2c, 0xef, 0x05, 0x91, 0xbd, 0xce,
|
0x1f, 0xc9, 0xf0, 0xd0, 0x33, 0xa5, 0xb7, 0x55, 0xfc, 0xcc, 0xd2, 0xdb, 0xb9, 0x80, 0x9b, 0xa5,
|
||||||
0x8d, 0x8b, 0x09, 0xec, 0xde, 0x36, 0xed, 0xde, 0x8e, 0x60, 0x61, 0x97, 0x8b, 0xc5, 0x12, 0x29,
|
0xb7, 0x0b, 0x01, 0x37, 0x6b, 0xa9, 0x55, 0xfc, 0x8e, 0x0d, 0x61, 0xb9, 0x10, 0xa3, 0x63, 0xaf,
|
||||||
0x11, 0xb9, 0xb7, 0x8a, 0x66, 0xfa, 0x44, 0x5e, 0x71, 0x53, 0x9d, 0x6d, 0x98, 0x29, 0x1f, 0x81,
|
0x28, 0xcb, 0x7b, 0x41, 0x64, 0xaf, 0x73, 0xe3, 0x62, 0x02, 0xbb, 0xb7, 0x4d, 0xbb, 0xb7, 0x23,
|
||||||
0x7d, 0x0d, 0x1a, 0x0f, 0x78, 0xaa, 0x72, 0x20, 0xb4, 0x83, 0x97, 0x4b, 0x8a, 0xe8, 0x94, 0xa4,
|
0x58, 0xd8, 0xe5, 0x62, 0xb1, 0x44, 0x4a, 0x44, 0xee, 0x75, 0xa3, 0x99, 0x70, 0x91, 0x57, 0xdc,
|
||||||
0x50, 0xd8, 0x3c, 0x43, 0xad, 0xdd, 0xe1, 0xfd, 0x01, 0x17, 0xca, 0xa9, 0x1b, 0xf4, 0x9f, 0xb1,
|
0x54, 0x67, 0x1b, 0x66, 0xca, 0x47, 0x60, 0x5f, 0x83, 0xc6, 0x03, 0x9e, 0xaa, 0x1c, 0x08, 0xed,
|
||||||
0x5f, 0xa4, 0xc6, 0x75, 0x4a, 0xd5, 0xba, 0x71, 0x75, 0x6e, 0x36, 0xbe, 0x94, 0xc3, 0xcb, 0x5a,
|
0xe0, 0xe5, 0x92, 0x22, 0x3a, 0x25, 0x29, 0x14, 0x36, 0xcf, 0x50, 0x6b, 0x77, 0x78, 0x7f, 0xc0,
|
||||||
0x0e, 0xa3, 0x3e, 0x37, 0x5c, 0x94, 0x10, 0x1a, 0x46, 0xbe, 0x9f, 0x16, 0xa0, 0x62, 0xee, 0xa2,
|
0x85, 0x72, 0xea, 0x06, 0xfd, 0x67, 0xec, 0x17, 0xa9, 0x71, 0x9d, 0x84, 0xb5, 0x6e, 0x5c, 0x9d,
|
||||||
0x16, 0xa0, 0x92, 0xf4, 0x40, 0xf7, 0x16, 0xf5, 0xe3, 0xb2, 0x1b, 0x59, 0x3f, 0x22, 0x25, 0x30,
|
0x9b, 0x8d, 0x2f, 0xe5, 0xf0, 0xb2, 0x96, 0xc3, 0xa8, 0xcf, 0x0d, 0x17, 0x25, 0x84, 0x86, 0x91,
|
||||||
0xeb, 0xe9, 0xce, 0x47, 0xfe, 0x28, 0x7d, 0xc6, 0x3e, 0xa0, 0x77, 0x8b, 0x66, 0x9e, 0x47, 0xe6,
|
0x21, 0xa8, 0x05, 0xa8, 0x98, 0xed, 0xa8, 0x05, 0xa8, 0x24, 0xa1, 0xd0, 0xbd, 0x45, 0xfd, 0xb8,
|
||||||
0xb1, 0xe6, 0x53, 0x42, 0xf4, 0x62, 0x19, 0x55, 0xb6, 0x17, 0x2b, 0xba, 0x22, 0x4f, 0xe6, 0x33,
|
0xec, 0x46, 0xd6, 0x8f, 0x48, 0x22, 0xcc, 0x7a, 0xba, 0xf3, 0x91, 0x3f, 0x4a, 0x9f, 0xb1, 0x0f,
|
||||||
0x00, 0x47, 0x69, 0x34, 0xde, 0xf5, 0xf9, 0x28, 0x0a, 0x33, 0x5d, 0x9b, 0xe5, 0x32, 0x64, 0xfa,
|
0xe8, 0xa5, 0xa3, 0x99, 0xe7, 0x91, 0x79, 0xac, 0xf9, 0x94, 0x10, 0xbd, 0x58, 0x46, 0x95, 0xed,
|
||||||
0xcb, 0x48, 0x68, 0x60, 0x1f, 0x18, 0x2e, 0xbe, 0x95, 0x26, 0xa3, 0x98, 0xeb, 0xc2, 0x74, 0x07,
|
0xc5, 0x8a, 0xae, 0xc8, 0x93, 0xf9, 0x0c, 0xc0, 0x51, 0x1a, 0x8d, 0x77, 0x7d, 0x3e, 0x8a, 0xc2,
|
||||||
0xbd, 0x20, 0x25, 0x29, 0x0f, 0x77, 0x1d, 0xb6, 0x0d, 0x90, 0x05, 0x69, 0xb5, 0xc3, 0x5e, 0x88,
|
0x4c, 0xd7, 0x66, 0xb9, 0x0c, 0x99, 0xfe, 0x32, 0x12, 0x1a, 0xd8, 0x07, 0x86, 0x8b, 0x6f, 0xa5,
|
||||||
0xff, 0x6a, 0xb5, 0x57, 0x12, 0xd1, 0x3d, 0x84, 0x7a, 0x16, 0xf5, 0xdb, 0xc8, 0x72, 0x36, 0xad,
|
0xc9, 0x28, 0xe6, 0xba, 0x30, 0xdd, 0x41, 0x2f, 0x48, 0x49, 0xca, 0xc3, 0x5d, 0x87, 0x6d, 0x03,
|
||||||
0x18, 0xa1, 0xb6, 0xdc, 0x85, 0x58, 0x9c, 0xdb, 0xa2, 0xa5, 0x02, 0x36, 0x8f, 0x4b, 0x45, 0x01,
|
0x64, 0x41, 0x5a, 0xed, 0xb0, 0x17, 0xe2, 0xbf, 0x5a, 0xed, 0x95, 0x44, 0x74, 0x0f, 0xa1, 0x9e,
|
||||||
0xb6, 0x00, 0x56, 0xc4, 0x00, 0xb5, 0x1b, 0x42, 0xb7, 0xf3, 0x6a, 0x26, 0x25, 0xf1, 0x30, 0x2d,
|
0x45, 0xfd, 0x36, 0xb2, 0x2c, 0x4f, 0x2b, 0x46, 0xa8, 0x2d, 0x77, 0x21, 0x16, 0xe7, 0xb6, 0x68,
|
||||||
0xcd, 0xa5, 0xe1, 0x24, 0xeb, 0xe8, 0x8e, 0xdc, 0x2a, 0x32, 0x03, 0x50, 0x35, 0x8f, 0x60, 0xb9,
|
0xa9, 0x80, 0xcd, 0xe3, 0x52, 0x51, 0x80, 0x2d, 0x80, 0x15, 0x31, 0x40, 0xed, 0x86, 0xd0, 0xed,
|
||||||
0x10, 0x0b, 0xd1, 0x22, 0x7d, 0x51, 0x08, 0x4a, 0x8b, 0xf4, 0x85, 0x61, 0x14, 0x77, 0x8d, 0xba,
|
0xbc, 0x9a, 0x49, 0x49, 0x3c, 0x4c, 0x4b, 0x73, 0x69, 0x38, 0xc9, 0x3a, 0xba, 0x23, 0xb7, 0x8a,
|
||||||
0x5c, 0x72, 0x01, 0xbb, 0x4c, 0xce, 0x83, 0xb4, 0x77, 0xfa, 0x8e, 0xb3, 0x79, 0x3c, 0x4b, 0x7f,
|
0xcc, 0x00, 0x54, 0xcd, 0x23, 0x58, 0x2e, 0xc4, 0x42, 0xb4, 0x48, 0x5f, 0x14, 0x82, 0xd2, 0x22,
|
||||||
0xc0, 0xf7, 0xa9, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x63, 0x24, 0x7e, 0xd9, 0xb2, 0x4f, 0x00,
|
0x7d, 0x61, 0x18, 0xc5, 0x5d, 0xa3, 0x2e, 0x97, 0x5c, 0xc0, 0x2e, 0x93, 0xf3, 0x20, 0xed, 0x9d,
|
||||||
0x00,
|
0xbe, 0xe3, 0x6c, 0x1e, 0xcf, 0xd2, 0x5f, 0xf6, 0x7d, 0xea, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff,
|
||||||
|
0x17, 0xaf, 0x2f, 0x13, 0xe4, 0x4f, 0x00, 0x00,
|
||||||
}
|
}
|
||||||
|
@ -516,10 +516,18 @@ func request_Lightning_DeleteAllPayments_0(ctx context.Context, marshaler runtim
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
filter_Lightning_DescribeGraph_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
|
||||||
|
)
|
||||||
|
|
||||||
func request_Lightning_DescribeGraph_0(ctx context.Context, marshaler runtime.Marshaler, client LightningClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
func request_Lightning_DescribeGraph_0(ctx context.Context, marshaler runtime.Marshaler, client LightningClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
||||||
var protoReq ChannelGraphRequest
|
var protoReq ChannelGraphRequest
|
||||||
var metadata runtime.ServerMetadata
|
var metadata runtime.ServerMetadata
|
||||||
|
|
||||||
|
if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_Lightning_DescribeGraph_0); err != nil {
|
||||||
|
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||||
|
}
|
||||||
|
|
||||||
msg, err := client.DescribeGraph(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
|
msg, err := client.DescribeGraph(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
|
||||||
return msg, metadata, err
|
return msg, metadata, err
|
||||||
|
|
||||||
|
@ -1488,6 +1488,12 @@ message ChannelEdge {
|
|||||||
}
|
}
|
||||||
|
|
||||||
message ChannelGraphRequest {
|
message ChannelGraphRequest {
|
||||||
|
/**
|
||||||
|
Whether unannounced channels are included in the response or not. If set,
|
||||||
|
unannounced channels are included. Unannounced channels are both private
|
||||||
|
channels, and public channels that are not yet announced to the network.
|
||||||
|
*/
|
||||||
|
bool include_unannounced = 1 [json_name = "include_unannounced"];
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns a new instance of the directed channel graph.
|
/// Returns a new instance of the directed channel graph.
|
||||||
|
@ -421,6 +421,16 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"name": "include_unannounced",
|
||||||
|
"description": "*\nWhether unannounced channels are included in the response or not. If set,\nunannounced channels are included. Unannounced channels are both private\nchannels, and public channels that are not yet announced to the network.",
|
||||||
|
"in": "query",
|
||||||
|
"required": false,
|
||||||
|
"type": "boolean",
|
||||||
|
"format": "boolean"
|
||||||
|
}
|
||||||
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
"Lightning"
|
"Lightning"
|
||||||
]
|
]
|
||||||
|
12
rpcserver.go
12
rpcserver.go
@ -3136,9 +3136,10 @@ func (r *rpcServer) GetTransactions(ctx context.Context,
|
|||||||
// specific routing policy which includes: the time lock delta, fee
|
// specific routing policy which includes: the time lock delta, fee
|
||||||
// information, etc.
|
// information, etc.
|
||||||
func (r *rpcServer) DescribeGraph(ctx context.Context,
|
func (r *rpcServer) DescribeGraph(ctx context.Context,
|
||||||
_ *lnrpc.ChannelGraphRequest) (*lnrpc.ChannelGraph, error) {
|
req *lnrpc.ChannelGraphRequest) (*lnrpc.ChannelGraph, error) {
|
||||||
|
|
||||||
resp := &lnrpc.ChannelGraph{}
|
resp := &lnrpc.ChannelGraph{}
|
||||||
|
includeUnannounced := req.IncludeUnannounced
|
||||||
|
|
||||||
// Obtain the pointer to the global singleton channel graph, this will
|
// Obtain the pointer to the global singleton channel graph, this will
|
||||||
// provide a consistent view of the graph due to bolt db's
|
// provide a consistent view of the graph due to bolt db's
|
||||||
@ -3179,8 +3180,17 @@ func (r *rpcServer) DescribeGraph(ctx context.Context,
|
|||||||
err = graph.ForEachChannel(func(edgeInfo *channeldb.ChannelEdgeInfo,
|
err = graph.ForEachChannel(func(edgeInfo *channeldb.ChannelEdgeInfo,
|
||||||
c1, c2 *channeldb.ChannelEdgePolicy) error {
|
c1, c2 *channeldb.ChannelEdgePolicy) error {
|
||||||
|
|
||||||
|
// Do not include unannounced channels unless specifically
|
||||||
|
// requested. Unannounced channels include both private channels as
|
||||||
|
// well as public channels whose authentication proof were not
|
||||||
|
// confirmed yet, hence were not announced.
|
||||||
|
if !includeUnannounced && edgeInfo.AuthProof == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
edge := marshalDbEdge(edgeInfo, c1, c2)
|
edge := marshalDbEdge(edgeInfo, c1, c2)
|
||||||
resp.Edges = append(resp.Edges, edge)
|
resp.Edges = append(resp.Edges, edge)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
if err != nil && err != channeldb.ErrGraphNoEdgesFound {
|
if err != nil && err != channeldb.ErrGraphNoEdgesFound {
|
||||||
|
Loading…
Reference in New Issue
Block a user