diff --git a/.golangci.yml b/.golangci.yml index b3289f16b5..00fc7b2738 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -17,7 +17,6 @@ run: - autopilotrpc - chainrpc - invoicesrpc - - routerrpc - signrpc - walletrpc - watchtowerrpc diff --git a/Dockerfile b/Dockerfile index fc61fd834f..12c6ece657 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,7 +18,7 @@ RUN apk add --no-cache --update alpine-sdk \ && cd /go/src/github.com/lightningnetwork/lnd \ && git checkout $checkout \ && make \ -&& make install tags="signrpc walletrpc chainrpc invoicesrpc routerrpc" +&& make install tags="signrpc walletrpc chainrpc invoicesrpc" # Start a new, final image. FROM alpine as final diff --git a/build/release/release.sh b/build/release/release.sh index 28236f55f3..46ce14a8c6 100755 --- a/build/release/release.sh +++ b/build/release/release.sh @@ -130,8 +130,8 @@ for i in $SYS; do cd $PACKAGE-$i-$TAG echo "Building:" $OS $ARCH $ARM - env CGO_ENABLED=0 GOOS=$OS GOARCH=$ARCH GOARM=$ARM go build -v -trimpath -ldflags="-s -w -buildid= $COMMITFLAGS" -tags="autopilotrpc signrpc walletrpc chainrpc invoicesrpc routerrpc watchtowerrpc" github.com/lightningnetwork/lnd/cmd/lnd - env CGO_ENABLED=0 GOOS=$OS GOARCH=$ARCH GOARM=$ARM go build -v -trimpath -ldflags="-s -w -buildid= $COMMITFLAGS" -tags="autopilotrpc invoicesrpc walletrpc routerrpc watchtowerrpc" github.com/lightningnetwork/lnd/cmd/lncli + env CGO_ENABLED=0 GOOS=$OS GOARCH=$ARCH GOARM=$ARM go build -v -trimpath -ldflags="-s -w -buildid= $COMMITFLAGS" -tags="autopilotrpc signrpc walletrpc chainrpc invoicesrpc watchtowerrpc" github.com/lightningnetwork/lnd/cmd/lnd + env CGO_ENABLED=0 GOOS=$OS GOARCH=$ARCH GOARM=$ARM go build -v -trimpath -ldflags="-s -w -buildid= $COMMITFLAGS" -tags="autopilotrpc invoicesrpc walletrpc watchtowerrpc" github.com/lightningnetwork/lnd/cmd/lncli cd .. if [[ $OS = "windows" ]]; then diff --git a/cmd/lncli/cmd_build_route.go b/cmd/lncli/cmd_build_route.go index 685989d423..81c5bfb04f 100644 --- a/cmd/lncli/cmd_build_route.go +++ b/cmd/lncli/cmd_build_route.go @@ -1,5 +1,3 @@ -// +build routerrpc - package main import ( diff --git a/cmd/lncli/cmd_pay.go b/cmd/lncli/cmd_pay.go new file mode 100644 index 0000000000..3923bee7ea --- /dev/null +++ b/cmd/lncli/cmd_pay.go @@ -0,0 +1,657 @@ +package main + +import ( + "context" + "crypto/rand" + "encoding/hex" + "errors" + "fmt" + "io/ioutil" + "os" + "strconv" + "strings" + + "github.com/lightninglabs/protobuf-hex-display/jsonpb" + "github.com/lightningnetwork/lnd/lnrpc" + "github.com/lightningnetwork/lnd/lnrpc/routerrpc" + "github.com/lightningnetwork/lnd/lntypes" + "github.com/lightningnetwork/lnd/record" + "github.com/lightningnetwork/lnd/routing/route" + "github.com/urfave/cli" +) + +const ( + // paymentTimeoutSeconds is the default timeout for the payment loop in + // lnd. No new attempts will be started after the timeout. + paymentTimeoutSeconds = 60 +) + +var ( + cltvLimitFlag = cli.UintFlag{ + Name: "cltv_limit", + Usage: "the maximum time lock that may be used for " + + "this payment", + } + + lastHopFlag = cli.StringFlag{ + Name: "last_hop", + Usage: "pubkey of the last hop (penultimate node in the path) " + + "to route through for this payment", + } + + dataFlag = cli.StringFlag{ + Name: "data", + Usage: "attach custom data to the payment. The required " + + "format is: =,=" + + ",.. For example: --data 3438382=0a21ff. " + + "Custom record ids start from 65536.", + } +) + +// paymentFlags returns common flags for sendpayment and payinvoice. +func paymentFlags() []cli.Flag { + return []cli.Flag{ + cli.StringFlag{ + Name: "pay_req", + Usage: "a zpay32 encoded payment request to fulfill", + }, + cli.Int64Flag{ + Name: "fee_limit", + Usage: "maximum fee allowed in satoshis when " + + "sending the payment", + }, + cli.Int64Flag{ + Name: "fee_limit_percent", + Usage: "percentage of the payment's amount used as " + + "the maximum fee allowed when sending the " + + "payment", + }, + cltvLimitFlag, + lastHopFlag, + cli.Uint64Flag{ + Name: "outgoing_chan_id", + Usage: "short channel id of the outgoing channel to " + + "use for the first hop of the payment", + Value: 0, + }, + cli.BoolFlag{ + Name: "force, f", + Usage: "will skip payment request confirmation", + }, + cli.BoolFlag{ + Name: "allow_self_payment", + Usage: "allow sending a circular payment to self", + }, + dataFlag, + } +} + +var sendPaymentCommand = cli.Command{ + Name: "sendpayment", + Category: "Payments", + Usage: "Send a payment over lightning.", + Description: ` + Send a payment over Lightning. One can either specify the full + parameters of the payment, or just use a payment request which encodes + all the payment details. + + If payment isn't manually specified, then only a payment request needs + to be passed using the --pay_req argument. + + If the payment *is* manually specified, then all four alternative + arguments need to be specified in order to complete the payment: + * --dest=N + * --amt=A + * --final_cltv_delta=T + * --payment_hash=H + `, + ArgsUsage: "dest amt payment_hash final_cltv_delta | --pay_req=[payment request]", + Flags: append(paymentFlags(), + cli.StringFlag{ + Name: "dest, d", + Usage: "the compressed identity pubkey of the " + + "payment recipient", + }, + cli.Int64Flag{ + Name: "amt, a", + Usage: "number of satoshis to send", + }, + cli.StringFlag{ + Name: "payment_hash, r", + Usage: "the hash to use within the payment's HTLC", + }, + cli.Int64Flag{ + Name: "final_cltv_delta", + Usage: "the number of blocks the last hop has to reveal the preimage", + }, + cli.BoolFlag{ + Name: "keysend", + Usage: "will generate a pre-image and encode it in the sphinx packet, a dest must be set [experimental]", + }, + ), + Action: sendPayment, +} + +// retrieveFeeLimit retrieves the fee limit based on the different fee limit +// flags passed. It always returns a value and doesn't rely on lnd applying a +// default. +func retrieveFeeLimit(ctx *cli.Context, amt int64) (int64, error) { + switch { + + case ctx.IsSet("fee_limit") && ctx.IsSet("fee_limit_percent"): + return 0, fmt.Errorf("either fee_limit or fee_limit_percent " + + "can be set, but not both") + + case ctx.IsSet("fee_limit"): + return ctx.Int64("fee_limit"), nil + + case ctx.IsSet("fee_limit_percent"): + // Round up the fee limit to prevent hitting zero on small + // amounts. + feeLimitRoundedUp := + (amt*ctx.Int64("fee_limit_percent") + 99) / 100 + + return feeLimitRoundedUp, nil + } + + // If no fee limit is set, use the payment amount as a limit (100%). + return amt, nil +} + +func confirmPayReq(resp *lnrpc.PayReq, amt, feeLimit int64) error { + fmt.Printf("Payment hash: %v\n", resp.GetPaymentHash()) + fmt.Printf("Description: %v\n", resp.GetDescription()) + fmt.Printf("Amount (in satoshis): %v\n", amt) + fmt.Printf("Fee limit (in satoshis): %v\n", feeLimit) + fmt.Printf("Destination: %v\n", resp.GetDestination()) + + confirm := promptForConfirmation("Confirm payment (yes/no): ") + if !confirm { + return fmt.Errorf("payment not confirmed") + } + + return nil +} + +func sendPayment(ctx *cli.Context) error { + // Show command help if no arguments provided + if ctx.NArg() == 0 && ctx.NumFlags() == 0 { + _ = cli.ShowCommandHelp(ctx, "sendpayment") + return nil + } + + // If a payment request was provided, we can exit early since all of the + // details of the payment are encoded within the request. + if ctx.IsSet("pay_req") { + req := &routerrpc.SendPaymentRequest{ + PaymentRequest: ctx.String("pay_req"), + Amt: ctx.Int64("amt"), + } + + return sendPaymentRequest(ctx, req) + } + + var ( + destNode []byte + amount int64 + err error + ) + + args := ctx.Args() + + switch { + case ctx.IsSet("dest"): + destNode, err = hex.DecodeString(ctx.String("dest")) + case args.Present(): + destNode, err = hex.DecodeString(args.First()) + args = args.Tail() + default: + return fmt.Errorf("destination txid argument missing") + } + if err != nil { + return err + } + + if len(destNode) != 33 { + return fmt.Errorf("dest node pubkey must be exactly 33 bytes, is "+ + "instead: %v", len(destNode)) + } + + if ctx.IsSet("amt") { + amount = ctx.Int64("amt") + } else if args.Present() { + amount, err = strconv.ParseInt(args.First(), 10, 64) + args = args.Tail() + if err != nil { + return fmt.Errorf("unable to decode payment amount: %v", err) + } + } + + req := &routerrpc.SendPaymentRequest{ + Dest: destNode, + Amt: amount, + DestCustomRecords: make(map[uint64][]byte), + } + + var rHash []byte + + if ctx.Bool("keysend") { + if ctx.IsSet("payment_hash") { + return errors.New("cannot set payment hash when using " + + "keysend") + } + var preimage lntypes.Preimage + if _, err := rand.Read(preimage[:]); err != nil { + return err + } + + // Set the preimage. If the user supplied a preimage with the + // data flag, the preimage that is set here will be overwritten + // later. + req.DestCustomRecords[record.KeySendType] = preimage[:] + + hash := preimage.Hash() + rHash = hash[:] + } else { + switch { + case ctx.IsSet("payment_hash"): + rHash, err = hex.DecodeString(ctx.String("payment_hash")) + case args.Present(): + rHash, err = hex.DecodeString(args.First()) + args = args.Tail() + default: + return fmt.Errorf("payment hash argument missing") + } + } + + if err != nil { + return err + } + if len(rHash) != 32 { + return fmt.Errorf("payment hash must be exactly 32 "+ + "bytes, is instead %v", len(rHash)) + } + req.PaymentHash = rHash + + switch { + case ctx.IsSet("final_cltv_delta"): + req.FinalCltvDelta = int32(ctx.Int64("final_cltv_delta")) + case args.Present(): + delta, err := strconv.ParseInt(args.First(), 10, 64) + if err != nil { + return err + } + req.FinalCltvDelta = int32(delta) + } + + return sendPaymentRequest(ctx, req) +} + +func sendPaymentRequest(ctx *cli.Context, + req *routerrpc.SendPaymentRequest) error { + + conn := getClientConn(ctx, false) + defer conn.Close() + + client := lnrpc.NewLightningClient(conn) + routerClient := routerrpc.NewRouterClient(conn) + + req.OutgoingChanId = ctx.Uint64("outgoing_chan_id") + if ctx.IsSet(lastHopFlag.Name) { + lastHop, err := route.NewVertexFromStr( + ctx.String(lastHopFlag.Name), + ) + if err != nil { + return err + } + req.LastHopPubkey = lastHop[:] + } + + req.CltvLimit = int32(ctx.Int(cltvLimitFlag.Name)) + req.TimeoutSeconds = paymentTimeoutSeconds + + req.AllowSelfPayment = ctx.Bool("allow_self_payment") + + // Parse custom data records. + data := ctx.String(dataFlag.Name) + if data != "" { + records := strings.Split(data, ",") + for _, r := range records { + kv := strings.Split(r, "=") + if len(kv) != 2 { + return errors.New("invalid data format: " + + "multiple equal signs in record") + } + + recordID, err := strconv.ParseUint(kv[0], 10, 64) + if err != nil { + return fmt.Errorf("invalid data format: %v", + err) + } + + hexValue, err := hex.DecodeString(kv[1]) + if err != nil { + return fmt.Errorf("invalid data format: %v", + err) + } + + req.DestCustomRecords[recordID] = hexValue + } + } + + var feeLimit int64 + if req.PaymentRequest != "" { + // Decode payment request to find out the amount. + decodeReq := &lnrpc.PayReqString{PayReq: req.PaymentRequest} + decodeResp, err := client.DecodePayReq( + context.Background(), decodeReq, + ) + if err != nil { + return err + } + + // If amount is present in the request, override the request + // amount. + amt := req.Amt + invoiceAmt := decodeResp.GetNumSatoshis() + if invoiceAmt != 0 { + amt = invoiceAmt + } + + // Calculate fee limit based on the determined amount. + feeLimit, err = retrieveFeeLimit(ctx, amt) + if err != nil { + return err + } + + // Ask for confirmation of amount and fee limit if payment is + // forced. + if !ctx.Bool("force") { + err := confirmPayReq(decodeResp, amt, feeLimit) + if err != nil { + return err + } + } + } else { + var err error + feeLimit, err = retrieveFeeLimit(ctx, req.Amt) + if err != nil { + return err + } + } + + req.FeeLimitSat = feeLimit + + stream, err := routerClient.SendPayment(context.Background(), req) + if err != nil { + return err + } + + for { + status, err := stream.Recv() + if err != nil { + return err + } + + if status.State != routerrpc.PaymentState_IN_FLIGHT { + printRespJSON(status) + + // If we get a payment error back, we pass an error up + // to main which eventually calls fatal() and returns + // with a non-zero exit code. + if status.State != routerrpc.PaymentState_SUCCEEDED { + return errors.New(status.State.String()) + } + + return nil + } + } +} + +var trackPaymentCommand = cli.Command{ + Name: "trackpayment", + Category: "Payments", + Usage: "Track progress of an existing payment.", + Description: ` + Pick up monitoring the progression of a previously initiated payment + specified by the hash argument. + `, + ArgsUsage: "hash", + Action: actionDecorator(trackPayment), +} + +func trackPayment(ctx *cli.Context) error { + args := ctx.Args() + + conn := getClientConn(ctx, false) + defer conn.Close() + + client := routerrpc.NewRouterClient(conn) + + if !args.Present() { + return fmt.Errorf("hash argument missing") + } + + hash, err := hex.DecodeString(args.First()) + if err != nil { + return err + } + + req := &routerrpc.TrackPaymentRequest{ + PaymentHash: hash, + } + + stream, err := client.TrackPayment(context.Background(), req) + if err != nil { + return err + } + + for { + status, err := stream.Recv() + if err != nil { + return err + } + + printRespJSON(status) + + if status.State != routerrpc.PaymentState_IN_FLIGHT { + return nil + } + } +} + +var payInvoiceCommand = cli.Command{ + Name: "payinvoice", + Category: "Payments", + Usage: "Pay an invoice over lightning.", + ArgsUsage: "pay_req", + Flags: append(paymentFlags(), + cli.Int64Flag{ + Name: "amt", + Usage: "(optional) number of satoshis to fulfill the " + + "invoice", + }, + ), + Action: actionDecorator(payInvoice), +} + +func payInvoice(ctx *cli.Context) error { + args := ctx.Args() + + var payReq string + switch { + case ctx.IsSet("pay_req"): + payReq = ctx.String("pay_req") + case args.Present(): + payReq = args.First() + default: + return fmt.Errorf("pay_req argument missing") + } + + req := &routerrpc.SendPaymentRequest{ + PaymentRequest: payReq, + Amt: ctx.Int64("amt"), + DestCustomRecords: make(map[uint64][]byte), + } + + return sendPaymentRequest(ctx, req) +} + +var sendToRouteCommand = cli.Command{ + Name: "sendtoroute", + Category: "Payments", + Usage: "Send a payment over a predefined route.", + Description: ` + Send a payment over Lightning using a specific route. One must specify + the route to attempt and the payment hash. This command can even + be chained with the response to queryroutes or buildroute. This command + can be used to implement channel rebalancing by crafting a self-route, + or even atomic swaps using a self-route that crosses multiple chains. + + There are three ways to specify a route: + * using the --routes parameter to manually specify a JSON encoded + route in the format of the return value of queryroutes or + buildroute: + (lncli sendtoroute --payment_hash= --routes=) + + * passing the route as a positional argument: + (lncli sendtoroute --payment_hash=pay_hash ) + + * or reading in the route from stdin, which can allow chaining the + response from queryroutes or buildroute, or even read in a file + with a pre-computed route: + (lncli queryroutes --args.. | lncli sendtoroute --payment_hash= - + + notice the '-' at the end, which signals that lncli should read + the route in from stdin + `, + Flags: []cli.Flag{ + cli.StringFlag{ + Name: "payment_hash, pay_hash", + Usage: "the hash to use within the payment's HTLC", + }, + cli.StringFlag{ + Name: "routes, r", + Usage: "a json array string in the format of the response " + + "of queryroutes that denotes which routes to use", + }, + }, + Action: sendToRoute, +} + +func sendToRoute(ctx *cli.Context) error { + // Show command help if no arguments provided. + if ctx.NArg() == 0 && ctx.NumFlags() == 0 { + _ = cli.ShowCommandHelp(ctx, "sendtoroute") + return nil + } + + args := ctx.Args() + + var ( + rHash []byte + err error + ) + switch { + case ctx.IsSet("payment_hash"): + rHash, err = hex.DecodeString(ctx.String("payment_hash")) + case args.Present(): + rHash, err = hex.DecodeString(args.First()) + + args = args.Tail() + default: + return fmt.Errorf("payment hash argument missing") + } + + if err != nil { + return err + } + + if len(rHash) != 32 { + return fmt.Errorf("payment hash must be exactly 32 "+ + "bytes, is instead %d", len(rHash)) + } + + var jsonRoutes string + switch { + // The user is specifying the routes explicitly via the key word + // argument. + case ctx.IsSet("routes"): + jsonRoutes = ctx.String("routes") + + // The user is specifying the routes as a positional argument. + case args.Present() && args.First() != "-": + jsonRoutes = args.First() + + // The user is signalling that we should read stdin in order to parse + // the set of target routes. + case args.Present() && args.First() == "-": + b, err := ioutil.ReadAll(os.Stdin) + if err != nil { + return err + } + if len(b) == 0 { + return fmt.Errorf("queryroutes output is empty") + } + + jsonRoutes = string(b) + } + + // Try to parse the provided json both in the legacy QueryRoutes format + // that contains a list of routes and the single route BuildRoute + // format. + var route *lnrpc.Route + routes := &lnrpc.QueryRoutesResponse{} + err = jsonpb.UnmarshalString(jsonRoutes, routes) + if err == nil { + if len(routes.Routes) == 0 { + return fmt.Errorf("no routes provided") + } + + if len(routes.Routes) != 1 { + return fmt.Errorf("expected a single route, but got %v", + len(routes.Routes)) + } + + route = routes.Routes[0] + } else { + routes := &routerrpc.BuildRouteResponse{} + err = jsonpb.UnmarshalString(jsonRoutes, routes) + if err != nil { + return fmt.Errorf("unable to unmarshal json string "+ + "from incoming array of routes: %v", err) + } + + route = routes.Route + } + + req := &lnrpc.SendToRouteRequest{ + PaymentHash: rHash, + Route: route, + } + + return sendToRouteRequest(ctx, req) +} + +func sendToRouteRequest(ctx *cli.Context, req *lnrpc.SendToRouteRequest) error { + client, cleanUp := getClient(ctx) + defer cleanUp() + + paymentStream, err := client.SendToRoute(context.Background()) + if err != nil { + return err + } + + if err := paymentStream.Send(req); err != nil { + return err + } + + resp, err := paymentStream.Recv() + if err != nil { + return err + } + + printRespJSON(resp) + + return nil +} diff --git a/cmd/lncli/cmd_query_mission_control.go b/cmd/lncli/cmd_query_mission_control.go index 6071d0a4e3..93cf71c9c9 100644 --- a/cmd/lncli/cmd_query_mission_control.go +++ b/cmd/lncli/cmd_query_mission_control.go @@ -1,5 +1,3 @@ -// +build routerrpc - package main import ( diff --git a/cmd/lncli/cmd_query_probability.go b/cmd/lncli/cmd_query_probability.go index 58c8ba1b42..4eaa075c98 100644 --- a/cmd/lncli/cmd_query_probability.go +++ b/cmd/lncli/cmd_query_probability.go @@ -1,5 +1,3 @@ -// +build routerrpc - package main import ( diff --git a/cmd/lncli/cmd_reset_mission_control.go b/cmd/lncli/cmd_reset_mission_control.go index db37fd4b19..b571a9e9a4 100644 --- a/cmd/lncli/cmd_reset_mission_control.go +++ b/cmd/lncli/cmd_reset_mission_control.go @@ -1,5 +1,3 @@ -// +build routerrpc - package main import ( diff --git a/cmd/lncli/commands.go b/cmd/lncli/commands.go index 9446c4d398..79313d252d 100644 --- a/cmd/lncli/commands.go +++ b/cmd/lncli/commands.go @@ -4,7 +4,6 @@ import ( "bufio" "bytes" "context" - "crypto/rand" "encoding/hex" "errors" "fmt" @@ -24,9 +23,6 @@ import ( "github.com/lightninglabs/protobuf-hex-display/jsonpb" "github.com/lightninglabs/protobuf-hex-display/proto" "github.com/lightningnetwork/lnd/lnrpc" - "github.com/lightningnetwork/lnd/lnrpc/routerrpc" - "github.com/lightningnetwork/lnd/lntypes" - "github.com/lightningnetwork/lnd/record" "github.com/lightningnetwork/lnd/routing/route" "github.com/lightningnetwork/lnd/walletunlocker" "github.com/urfave/cli" @@ -1709,11 +1705,6 @@ var getInfoCommand = cli.Command{ Action: actionDecorator(getInfo), } -type chain struct { - Chain string `json:"chain"` - Network string `json:"network"` -} - func getInfo(ctx *cli.Context) error { ctxb := context.Background() client, cleanUp := getClient(ctx) @@ -1882,566 +1873,6 @@ func closedChannels(ctx *cli.Context) error { return nil } -var ( - cltvLimitFlag = cli.UintFlag{ - Name: "cltv_limit", - Usage: "the maximum time lock that may be used for " + - "this payment", - } - - lastHopFlag = cli.StringFlag{ - Name: "last_hop", - Usage: "pubkey of the last hop (penultimate node in the path) " + - "to route through for this payment", - } - - dataFlag = cli.StringFlag{ - Name: "data", - Usage: "attach custom data to the payment. The required " + - "format is: =,=" + - ",.. For example: --data 3438382=0a21ff. " + - "Custom record ids start from 65536.", - } -) - -// paymentFlags returns common flags for sendpayment and payinvoice. -func paymentFlags() []cli.Flag { - return []cli.Flag{ - cli.StringFlag{ - Name: "pay_req", - Usage: "a zpay32 encoded payment request to fulfill", - }, - cli.Int64Flag{ - Name: "fee_limit", - Usage: "maximum fee allowed in satoshis when " + - "sending the payment", - }, - cli.Int64Flag{ - Name: "fee_limit_percent", - Usage: "percentage of the payment's amount used as " + - "the maximum fee allowed when sending the " + - "payment", - }, - cltvLimitFlag, - lastHopFlag, - cli.Uint64Flag{ - Name: "outgoing_chan_id", - Usage: "short channel id of the outgoing channel to " + - "use for the first hop of the payment", - Value: 0, - }, - cli.BoolFlag{ - Name: "force, f", - Usage: "will skip payment request confirmation", - }, - cli.BoolFlag{ - Name: "allow_self_payment", - Usage: "allow sending a circular payment to self", - }, - dataFlag, - } -} - -var sendPaymentCommand = cli.Command{ - Name: "sendpayment", - Category: "Payments", - Usage: "Send a payment over lightning.", - Description: ` - Send a payment over Lightning. One can either specify the full - parameters of the payment, or just use a payment request which encodes - all the payment details. - - If payment isn't manually specified, then only a payment request needs - to be passed using the --pay_req argument. - - If the payment *is* manually specified, then all four alternative - arguments need to be specified in order to complete the payment: - * --dest=N - * --amt=A - * --final_cltv_delta=T - * --payment_hash=H - `, - ArgsUsage: "dest amt payment_hash final_cltv_delta | --pay_req=[payment request]", - Flags: append(paymentFlags(), - cli.StringFlag{ - Name: "dest, d", - Usage: "the compressed identity pubkey of the " + - "payment recipient", - }, - cli.Int64Flag{ - Name: "amt, a", - Usage: "number of satoshis to send", - }, - cli.StringFlag{ - Name: "payment_hash, r", - Usage: "the hash to use within the payment's HTLC", - }, - cli.Int64Flag{ - Name: "final_cltv_delta", - Usage: "the number of blocks the last hop has to reveal the preimage", - }, - cli.BoolFlag{ - Name: "keysend", - Usage: "will generate a pre-image and encode it in the sphinx packet, a dest must be set [experimental]", - }, - ), - Action: sendPayment, -} - -// retrieveFeeLimit retrieves the fee limit based on the different fee limit -// flags passed. -func retrieveFeeLimit(ctx *cli.Context) (*lnrpc.FeeLimit, error) { - switch { - case ctx.IsSet("fee_limit") && ctx.IsSet("fee_limit_percent"): - return nil, fmt.Errorf("either fee_limit or fee_limit_percent " + - "can be set, but not both") - case ctx.IsSet("fee_limit"): - return &lnrpc.FeeLimit{ - Limit: &lnrpc.FeeLimit_Fixed{ - Fixed: ctx.Int64("fee_limit"), - }, - }, nil - case ctx.IsSet("fee_limit_percent"): - return &lnrpc.FeeLimit{ - Limit: &lnrpc.FeeLimit_Percent{ - Percent: ctx.Int64("fee_limit_percent"), - }, - }, nil - } - - // Since the fee limit flags aren't required, we don't return an error - // if they're not set. - return nil, nil -} - -func confirmPayReq(resp *lnrpc.PayReq, amt int64) error { - fmt.Printf("Description: %v\n", resp.GetDescription()) - fmt.Printf("Amount (in satoshis): %v\n", amt) - fmt.Printf("Destination: %v\n", resp.GetDestination()) - - confirm := promptForConfirmation("Confirm payment (yes/no): ") - if !confirm { - return fmt.Errorf("payment not confirmed") - } - - return nil -} - -func sendPayment(ctx *cli.Context) error { - // Show command help if no arguments provided - if ctx.NArg() == 0 && ctx.NumFlags() == 0 { - cli.ShowCommandHelp(ctx, "sendpayment") - return nil - } - - // If a payment request was provided, we can exit early since all of the - // details of the payment are encoded within the request. - if ctx.IsSet("pay_req") { - req := &lnrpc.SendRequest{ - PaymentRequest: ctx.String("pay_req"), - Amt: ctx.Int64("amt"), - } - - return sendPaymentRequest(ctx, req) - } - - var ( - destNode []byte - amount int64 - err error - ) - - args := ctx.Args() - - switch { - case ctx.IsSet("dest"): - destNode, err = hex.DecodeString(ctx.String("dest")) - case args.Present(): - destNode, err = hex.DecodeString(args.First()) - args = args.Tail() - default: - return fmt.Errorf("destination txid argument missing") - } - if err != nil { - return err - } - - if len(destNode) != 33 { - return fmt.Errorf("dest node pubkey must be exactly 33 bytes, is "+ - "instead: %v", len(destNode)) - } - - if ctx.IsSet("amt") { - amount = ctx.Int64("amt") - } else if args.Present() { - amount, err = strconv.ParseInt(args.First(), 10, 64) - args = args.Tail() - if err != nil { - return fmt.Errorf("unable to decode payment amount: %v", err) - } - } - - req := &lnrpc.SendRequest{ - Dest: destNode, - Amt: amount, - DestCustomRecords: make(map[uint64][]byte), - } - - var rHash []byte - - if ctx.Bool("keysend") { - if ctx.IsSet("payment_hash") { - return errors.New("cannot set payment hash when using " + - "keysend") - } - var preimage lntypes.Preimage - if _, err := rand.Read(preimage[:]); err != nil { - return err - } - - // Set the preimage. If the user supplied a preimage with the - // data flag, the preimage that is set here will be overwritten - // later. - req.DestCustomRecords[record.KeySendType] = preimage[:] - - hash := preimage.Hash() - rHash = hash[:] - } else { - switch { - case ctx.IsSet("payment_hash"): - rHash, err = hex.DecodeString(ctx.String("payment_hash")) - case args.Present(): - rHash, err = hex.DecodeString(args.First()) - args = args.Tail() - default: - return fmt.Errorf("payment hash argument missing") - } - } - - if err != nil { - return err - } - if len(rHash) != 32 { - return fmt.Errorf("payment hash must be exactly 32 "+ - "bytes, is instead %v", len(rHash)) - } - req.PaymentHash = rHash - - switch { - case ctx.IsSet("final_cltv_delta"): - req.FinalCltvDelta = int32(ctx.Int64("final_cltv_delta")) - case args.Present(): - delta, err := strconv.ParseInt(args.First(), 10, 64) - if err != nil { - return err - } - req.FinalCltvDelta = int32(delta) - } - - return sendPaymentRequest(ctx, req) -} - -func sendPaymentRequest(ctx *cli.Context, req *lnrpc.SendRequest) error { - client, cleanUp := getClient(ctx) - defer cleanUp() - - // First, we'll retrieve the fee limit value passed since it can apply - // to both ways of sending payments (with the payment request or - // providing the details manually). - feeLimit, err := retrieveFeeLimit(ctx) - if err != nil { - return err - } - req.FeeLimit = feeLimit - - req.OutgoingChanId = ctx.Uint64("outgoing_chan_id") - if ctx.IsSet(lastHopFlag.Name) { - lastHop, err := route.NewVertexFromStr( - ctx.String(lastHopFlag.Name), - ) - if err != nil { - return err - } - req.LastHopPubkey = lastHop[:] - } - - req.CltvLimit = uint32(ctx.Int(cltvLimitFlag.Name)) - - req.AllowSelfPayment = ctx.Bool("allow_self_payment") - - // Parse custom data records. - data := ctx.String(dataFlag.Name) - if data != "" { - records := strings.Split(data, ",") - for _, r := range records { - kv := strings.Split(r, "=") - if len(kv) != 2 { - return errors.New("invalid data format: " + - "multiple equal signs in record") - } - - recordID, err := strconv.ParseUint(kv[0], 10, 64) - if err != nil { - return fmt.Errorf("invalid data format: %v", - err) - } - - hexValue, err := hex.DecodeString(kv[1]) - if err != nil { - return fmt.Errorf("invalid data format: %v", - err) - } - - req.DestCustomRecords[recordID] = hexValue - } - } - - amt := req.Amt - - if req.PaymentRequest != "" { - req := &lnrpc.PayReqString{PayReq: req.PaymentRequest} - resp, err := client.DecodePayReq(context.Background(), req) - if err != nil { - return err - } - - invoiceAmt := resp.GetNumSatoshis() - if invoiceAmt != 0 { - amt = invoiceAmt - } - - if !ctx.Bool("force") { - err := confirmPayReq(resp, amt) - if err != nil { - return err - } - } - } - - paymentStream, err := client.SendPayment(context.Background()) - if err != nil { - return err - } - - if err := paymentStream.Send(req); err != nil { - return err - } - - resp, err := paymentStream.Recv() - if err != nil { - return err - } - - paymentStream.CloseSend() - - printRespJSON(resp) - - // If we get a payment error back, we pass an error - // up to main which eventually calls fatal() and returns - // with a non-zero exit code. - if resp.PaymentError != "" { - return errors.New(resp.PaymentError) - } - - return nil -} - -var payInvoiceCommand = cli.Command{ - Name: "payinvoice", - Category: "Payments", - Usage: "Pay an invoice over lightning.", - ArgsUsage: "pay_req", - Flags: append(paymentFlags(), - cli.Int64Flag{ - Name: "amt", - Usage: "(optional) number of satoshis to fulfill the " + - "invoice", - }, - ), - Action: actionDecorator(payInvoice), -} - -func payInvoice(ctx *cli.Context) error { - args := ctx.Args() - - var payReq string - switch { - case ctx.IsSet("pay_req"): - payReq = ctx.String("pay_req") - case args.Present(): - payReq = args.First() - default: - return fmt.Errorf("pay_req argument missing") - } - - req := &lnrpc.SendRequest{ - PaymentRequest: payReq, - Amt: ctx.Int64("amt"), - DestCustomRecords: make(map[uint64][]byte), - } - - return sendPaymentRequest(ctx, req) -} - -var sendToRouteCommand = cli.Command{ - Name: "sendtoroute", - Category: "Payments", - Usage: "Send a payment over a predefined route.", - Description: ` - Send a payment over Lightning using a specific route. One must specify - the route to attempt and the payment hash. This command can even - be chained with the response to queryroutes or buildroute. This command - can be used to implement channel rebalancing by crafting a self-route, - or even atomic swaps using a self-route that crosses multiple chains. - - There are three ways to specify a route: - * using the --routes parameter to manually specify a JSON encoded - route in the format of the return value of queryroutes or - buildroute: - (lncli sendtoroute --payment_hash= --routes=) - - * passing the route as a positional argument: - (lncli sendtoroute --payment_hash=pay_hash ) - - * or reading in the route from stdin, which can allow chaining the - response from queryroutes or buildroute, or even read in a file - with a pre-computed route: - (lncli queryroutes --args.. | lncli sendtoroute --payment_hash= - - - notice the '-' at the end, which signals that lncli should read - the route in from stdin - `, - Flags: []cli.Flag{ - cli.StringFlag{ - Name: "payment_hash, pay_hash", - Usage: "the hash to use within the payment's HTLC", - }, - cli.StringFlag{ - Name: "routes, r", - Usage: "a json array string in the format of the response " + - "of queryroutes that denotes which routes to use", - }, - }, - Action: sendToRoute, -} - -func sendToRoute(ctx *cli.Context) error { - // Show command help if no arguments provided. - if ctx.NArg() == 0 && ctx.NumFlags() == 0 { - cli.ShowCommandHelp(ctx, "sendtoroute") - return nil - } - - args := ctx.Args() - - var ( - rHash []byte - err error - ) - switch { - case ctx.IsSet("payment_hash"): - rHash, err = hex.DecodeString(ctx.String("payment_hash")) - case args.Present(): - rHash, err = hex.DecodeString(args.First()) - - args = args.Tail() - default: - return fmt.Errorf("payment hash argument missing") - } - - if err != nil { - return err - } - - if len(rHash) != 32 { - return fmt.Errorf("payment hash must be exactly 32 "+ - "bytes, is instead %d", len(rHash)) - } - - var jsonRoutes string - switch { - // The user is specifying the routes explicitly via the key word - // argument. - case ctx.IsSet("routes"): - jsonRoutes = ctx.String("routes") - - // The user is specifying the routes as a positional argument. - case args.Present() && args.First() != "-": - jsonRoutes = args.First() - - // The user is signalling that we should read stdin in order to parse - // the set of target routes. - case args.Present() && args.First() == "-": - b, err := ioutil.ReadAll(os.Stdin) - if err != nil { - return err - } - if len(b) == 0 { - return fmt.Errorf("queryroutes output is empty") - } - - jsonRoutes = string(b) - } - - // Try to parse the provided json both in the legacy QueryRoutes format - // that contains a list of routes and the single route BuildRoute - // format. - var route *lnrpc.Route - routes := &lnrpc.QueryRoutesResponse{} - err = jsonpb.UnmarshalString(jsonRoutes, routes) - if err == nil { - if len(routes.Routes) == 0 { - return fmt.Errorf("no routes provided") - } - - if len(routes.Routes) != 1 { - return fmt.Errorf("expected a single route, but got %v", - len(routes.Routes)) - } - - route = routes.Routes[0] - } else { - routes := &routerrpc.BuildRouteResponse{} - err = jsonpb.UnmarshalString(jsonRoutes, routes) - if err != nil { - return fmt.Errorf("unable to unmarshal json string "+ - "from incoming array of routes: %v", err) - } - - route = routes.Route - } - - req := &lnrpc.SendToRouteRequest{ - PaymentHash: rHash, - Route: route, - } - - return sendToRouteRequest(ctx, req) -} - -func sendToRouteRequest(ctx *cli.Context, req *lnrpc.SendToRouteRequest) error { - client, cleanUp := getClient(ctx) - defer cleanUp() - - paymentStream, err := client.SendToRoute(context.Background()) - if err != nil { - return err - } - - if err := paymentStream.Send(req); err != nil { - return err - } - - resp, err := paymentStream.Recv() - if err != nil { - return err - } - - printRespJSON(resp) - - return nil -} - var addInvoiceCommand = cli.Command{ Name: "addinvoice", Category: "Payments", @@ -2944,7 +2375,7 @@ func queryRoutes(ctx *cli.Context) error { return fmt.Errorf("amt argument missing") } - feeLimit, err := retrieveFeeLimit(ctx) + feeLimit, err := retrieveFeeLimitLegacy(ctx) if err != nil { return err } @@ -2967,6 +2398,38 @@ func queryRoutes(ctx *cli.Context) error { return nil } +// retrieveFeeLimitLegacy retrieves the fee limit based on the different fee +// limit flags passed. This function will eventually disappear in favor of +// retrieveFeeLimit and the new payment rpc. +func retrieveFeeLimitLegacy(ctx *cli.Context) (*lnrpc.FeeLimit, error) { + switch { + case ctx.IsSet("fee_limit") && ctx.IsSet("fee_limit_percent"): + return nil, fmt.Errorf("either fee_limit or fee_limit_percent " + + "can be set, but not both") + case ctx.IsSet("fee_limit"): + return &lnrpc.FeeLimit{ + Limit: &lnrpc.FeeLimit_Fixed{ + Fixed: ctx.Int64("fee_limit"), + }, + }, nil + case ctx.IsSet("fee_limit_percent"): + feeLimitPercent := ctx.Int64("fee_limit_percent") + if feeLimitPercent < 0 { + return nil, errors.New("negative fee limit percentage " + + "provided") + } + return &lnrpc.FeeLimit{ + Limit: &lnrpc.FeeLimit_Percent{ + Percent: feeLimitPercent, + }, + }, nil + } + + // Since the fee limit flags aren't required, we don't return an error + // if they're not set. + return nil, nil +} + var getNetworkInfoCommand = cli.Command{ Name: "getnetworkinfo", Category: "Channels", diff --git a/cmd/lncli/main.go b/cmd/lncli/main.go index e8170c5939..6f0640802f 100644 --- a/cmd/lncli/main.go +++ b/cmd/lncli/main.go @@ -300,6 +300,7 @@ func main() { verifyChanBackupCommand, restoreChanBackupCommand, bakeMacaroonCommand, + trackPaymentCommand, } // Add any extra commands determined by build flags. diff --git a/cmd/lncli/routerrpc_active.go b/cmd/lncli/routerrpc.go similarity index 72% rename from cmd/lncli/routerrpc_active.go rename to cmd/lncli/routerrpc.go index f8903d808e..819f66d22f 100644 --- a/cmd/lncli/routerrpc_active.go +++ b/cmd/lncli/routerrpc.go @@ -1,10 +1,8 @@ -// +build routerrpc - package main import "github.com/urfave/cli" -// routerCommands will return nil for non-routerrpc builds. +// routerCommands returns a list of routerrpc commands. func routerCommands() []cli.Command { return []cli.Command{ queryMissionControlCommand, diff --git a/cmd/lncli/routerrpc_default.go b/cmd/lncli/routerrpc_default.go deleted file mode 100644 index c2a5fe7bed..0000000000 --- a/cmd/lncli/routerrpc_default.go +++ /dev/null @@ -1,10 +0,0 @@ -// +build !routerrpc - -package main - -import "github.com/urfave/cli" - -// routerCommands will return nil for non-routerrpc builds. -func routerCommands() []cli.Command { - return nil -} diff --git a/docker/lnd/Dockerfile b/docker/lnd/Dockerfile index 424e2c74a5..db55ce1272 100644 --- a/docker/lnd/Dockerfile +++ b/docker/lnd/Dockerfile @@ -16,7 +16,7 @@ COPY . /go/src/github.com/lightningnetwork/lnd RUN cd /go/src/github.com/lightningnetwork/lnd \ && make \ -&& make install tags="signrpc walletrpc chainrpc invoicesrpc routerrpc" +&& make install tags="signrpc walletrpc chainrpc invoicesrpc" # Start a new, final image to reduce size. FROM alpine as final diff --git a/lnrpc/routerrpc/config.go b/lnrpc/routerrpc/config.go index 98b3594cf3..045561dbfd 100644 --- a/lnrpc/routerrpc/config.go +++ b/lnrpc/routerrpc/config.go @@ -1,40 +1,69 @@ package routerrpc import ( - "time" - - "github.com/btcsuite/btcutil" + "github.com/lightningnetwork/lnd/macaroons" + "github.com/lightningnetwork/lnd/routing" ) -// RoutingConfig contains the configurable parameters that control routing. -type RoutingConfig struct { - // MinRouteProbability is the minimum required route success probability - // to attempt the payment. - MinRouteProbability float64 `long:"minrtprob" description:"Minimum required route success probability to attempt the payment"` - - // AprioriHopProbability is the assumed success probability of a hop in - // a route when no other information is available. - AprioriHopProbability float64 `long:"apriorihopprob" description:"Assumed success probability of a hop in a route when no other information is available."` - - // AprioriWeight is a value in the range [0, 1] that defines to what - // extent historical results should be extrapolated to untried - // connections. Setting it to one will completely ignore historical - // results and always assume the configured a priori probability for - // untried connections. A value of zero will ignore the a priori - // probability completely and only base the probability on historical - // results, unless there are none available. - AprioriWeight float64 `long:"aprioriweight" description:"Weight of the a priori probability in success probability estimation. Valid values are in [0, 1]."` - - // PenaltyHalfLife defines after how much time a penalized node or - // channel is back at 50% probability. - PenaltyHalfLife time.Duration `long:"penaltyhalflife" description:"Defines the duration after which a penalized node or channel is back at 50% probability"` - - // AttemptCost is the virtual cost in path finding weight units of - // executing a payment attempt that fails. It is used to trade off - // potentially better routes against their probability of succeeding. - AttemptCost btcutil.Amount `long:"attemptcost" description:"The (virtual) cost in sats of a failed payment attempt"` - - // MaxMcHistory defines the maximum number of payment results that - // are held on disk by mission control. - MaxMcHistory int `long:"maxmchistory" description:"the maximum number of payment results that are held on disk by mission control"` +// Config is the main configuration file for the router RPC server. It contains +// all the items required for the router RPC server to carry out its duties. +// The fields with struct tags are meant to be parsed as normal configuration +// options, while if able to be populated, the latter fields MUST also be +// specified. +type Config struct { + RoutingConfig + + // RouterMacPath is the path for the router macaroon. If unspecified + // then we assume that the macaroon will be found under the network + // directory, named DefaultRouterMacFilename. + RouterMacPath string `long:"routermacaroonpath" description:"Path to the router macaroon"` + + // NetworkDir is the main network directory wherein the router rpc + // server will find the macaroon named DefaultRouterMacFilename. + NetworkDir string + + // MacService is the main macaroon service that we'll use to handle + // authentication for the Router rpc server. + MacService *macaroons.Service + + // Router is the main channel router instance that backs this RPC + // server. + // + // TODO(roasbeef): make into pkg lvl interface? + // + // TODO(roasbeef): assumes router handles saving payment state + Router *routing.ChannelRouter + + // RouterBackend contains shared logic between this sub server and the + // main rpc server. + RouterBackend *RouterBackend +} + +// DefaultConfig defines the config defaults. +func DefaultConfig() *Config { + defaultRoutingConfig := RoutingConfig{ + AprioriHopProbability: routing.DefaultAprioriHopProbability, + AprioriWeight: routing.DefaultAprioriWeight, + MinRouteProbability: routing.DefaultMinRouteProbability, + PenaltyHalfLife: routing.DefaultPenaltyHalfLife, + AttemptCost: routing.DefaultPaymentAttemptPenalty. + ToSatoshis(), + MaxMcHistory: routing.DefaultMaxMcHistory, + } + + return &Config{ + RoutingConfig: defaultRoutingConfig, + } +} + +// GetRoutingConfig returns the routing config based on this sub server config. +func GetRoutingConfig(cfg *Config) *RoutingConfig { + return &RoutingConfig{ + AprioriHopProbability: cfg.AprioriHopProbability, + AprioriWeight: cfg.AprioriWeight, + MinRouteProbability: cfg.MinRouteProbability, + AttemptCost: cfg.AttemptCost, + PenaltyHalfLife: cfg.PenaltyHalfLife, + MaxMcHistory: cfg.MaxMcHistory, + } } diff --git a/lnrpc/routerrpc/config_active.go b/lnrpc/routerrpc/config_active.go deleted file mode 100644 index a8393fc615..0000000000 --- a/lnrpc/routerrpc/config_active.go +++ /dev/null @@ -1,71 +0,0 @@ -// +build routerrpc - -package routerrpc - -import ( - "github.com/lightningnetwork/lnd/macaroons" - "github.com/lightningnetwork/lnd/routing" -) - -// Config is the main configuration file for the router RPC server. It contains -// all the items required for the router RPC server to carry out its duties. -// The fields with struct tags are meant to be parsed as normal configuration -// options, while if able to be populated, the latter fields MUST also be -// specified. -type Config struct { - RoutingConfig - - // RouterMacPath is the path for the router macaroon. If unspecified - // then we assume that the macaroon will be found under the network - // directory, named DefaultRouterMacFilename. - RouterMacPath string `long:"routermacaroonpath" description:"Path to the router macaroon"` - - // NetworkDir is the main network directory wherein the router rpc - // server will find the macaroon named DefaultRouterMacFilename. - NetworkDir string - - // MacService is the main macaroon service that we'll use to handle - // authentication for the Router rpc server. - MacService *macaroons.Service - - // Router is the main channel router instance that backs this RPC - // server. - // - // TODO(roasbeef): make into pkg lvl interface? - // - // TODO(roasbeef): assumes router handles saving payment state - Router *routing.ChannelRouter - - // RouterBackend contains shared logic between this sub server and the - // main rpc server. - RouterBackend *RouterBackend -} - -// DefaultConfig defines the config defaults. -func DefaultConfig() *Config { - defaultRoutingConfig := RoutingConfig{ - AprioriHopProbability: routing.DefaultAprioriHopProbability, - AprioriWeight: routing.DefaultAprioriWeight, - MinRouteProbability: routing.DefaultMinRouteProbability, - PenaltyHalfLife: routing.DefaultPenaltyHalfLife, - AttemptCost: routing.DefaultPaymentAttemptPenalty. - ToSatoshis(), - MaxMcHistory: routing.DefaultMaxMcHistory, - } - - return &Config{ - RoutingConfig: defaultRoutingConfig, - } -} - -// GetRoutingConfig returns the routing config based on this sub server config. -func GetRoutingConfig(cfg *Config) *RoutingConfig { - return &RoutingConfig{ - AprioriHopProbability: cfg.AprioriHopProbability, - AprioriWeight: cfg.AprioriWeight, - MinRouteProbability: cfg.MinRouteProbability, - AttemptCost: cfg.AttemptCost, - PenaltyHalfLife: cfg.PenaltyHalfLife, - MaxMcHistory: cfg.MaxMcHistory, - } -} diff --git a/lnrpc/routerrpc/config_default.go b/lnrpc/routerrpc/config_default.go deleted file mode 100644 index 6fcc74a77d..0000000000 --- a/lnrpc/routerrpc/config_default.go +++ /dev/null @@ -1,28 +0,0 @@ -// +build !routerrpc - -package routerrpc - -import "github.com/lightningnetwork/lnd/routing" - -// Config is the default config struct for the package. When the build tag isn't -// specified, then we output a blank config. -type Config struct{} - -// DefaultConfig defines the config defaults. Without the sub server enabled, -// there are no defaults to set. -func DefaultConfig() *Config { - return &Config{} -} - -// GetRoutingConfig returns the routing config based on this sub server config. -func GetRoutingConfig(cfg *Config) *RoutingConfig { - return &RoutingConfig{ - AprioriHopProbability: routing.DefaultAprioriHopProbability, - AprioriWeight: routing.DefaultAprioriWeight, - MinRouteProbability: routing.DefaultMinRouteProbability, - AttemptCost: routing.DefaultPaymentAttemptPenalty. - ToSatoshis(), - PenaltyHalfLife: routing.DefaultPenaltyHalfLife, - MaxMcHistory: routing.DefaultMaxMcHistory, - } -} diff --git a/lnrpc/routerrpc/driver.go b/lnrpc/routerrpc/driver.go index 05cc0c4b00..e174e2222e 100644 --- a/lnrpc/routerrpc/driver.go +++ b/lnrpc/routerrpc/driver.go @@ -1,5 +1,3 @@ -// +build routerrpc - package routerrpc import ( diff --git a/lnrpc/routerrpc/router.pb.go b/lnrpc/routerrpc/router.pb.go index ea4f940fb7..c9254c2848 100644 --- a/lnrpc/routerrpc/router.pb.go +++ b/lnrpc/routerrpc/router.pb.go @@ -467,10 +467,7 @@ type PaymentStatus struct { //The pre-image of the payment when state is SUCCEEDED. Preimage []byte `protobuf:"bytes,2,opt,name=preimage,proto3" json:"preimage,omitempty"` //* - //The taken route when state is SUCCEEDED. - Route *lnrpc.Route `protobuf:"bytes,3,opt,name=route,proto3" json:"route,omitempty"` - //* - //The HTLCs made in attempt to settle the payment [EXPERIMENTAL]. + //The HTLCs made in attempt to settle the payment. Htlcs []*lnrpc.HTLCAttempt `protobuf:"bytes,4,rep,name=htlcs,proto3" json:"htlcs,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -516,13 +513,6 @@ func (m *PaymentStatus) GetPreimage() []byte { return nil } -func (m *PaymentStatus) GetRoute() *lnrpc.Route { - if m != nil { - return m.Route - } - return nil -} - func (m *PaymentStatus) GetHtlcs() []*lnrpc.HTLCAttempt { if m != nil { return m.Htlcs @@ -1723,142 +1713,142 @@ func init() { func init() { proto.RegisterFile("routerrpc/router.proto", fileDescriptor_7a0613f69d37b0a5) } var fileDescriptor_7a0613f69d37b0a5 = []byte{ - // 2155 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x58, 0xdd, 0x72, 0xdb, 0xc6, - 0x15, 0x36, 0x28, 0x50, 0x22, 0x0f, 0x7f, 0x04, 0xad, 0x1c, 0x99, 0xa5, 0xec, 0x44, 0x41, 0x13, - 0x9b, 0xe3, 0x3a, 0x92, 0xa3, 0x76, 0x5a, 0x4f, 0xdb, 0xa4, 0x43, 0x91, 0x90, 0x09, 0x99, 0x02, - 0x98, 0x25, 0xe4, 0x9f, 0xfa, 0x62, 0x07, 0x22, 0x97, 0x22, 0x2a, 0x10, 0x60, 0x81, 0xa5, 0x3d, - 0xba, 0xec, 0xf4, 0xae, 0x2f, 0xd2, 0x5e, 0xf5, 0x09, 0xfa, 0x2e, 0xbd, 0xed, 0x13, 0x74, 0x7a, - 0xd9, 0xd9, 0xc5, 0x82, 0x04, 0x29, 0xca, 0xc9, 0x8d, 0x4d, 0x7c, 0xe7, 0xdb, 0xb3, 0xe7, 0x77, - 0xcf, 0xae, 0x60, 0x2f, 0x0a, 0x67, 0x8c, 0x46, 0xd1, 0x74, 0x70, 0x94, 0xfc, 0x3a, 0x9c, 0x46, - 0x21, 0x0b, 0x51, 0x71, 0x8e, 0xd7, 0x8b, 0xd1, 0x74, 0x90, 0xa0, 0xfa, 0xff, 0xf2, 0x80, 0xfa, - 0x34, 0x18, 0xf6, 0xdc, 0x9b, 0x09, 0x0d, 0x18, 0xa6, 0x7f, 0x9e, 0xd1, 0x98, 0x21, 0x04, 0xea, - 0x90, 0xc6, 0xac, 0xa6, 0x1c, 0x28, 0x8d, 0x32, 0x16, 0xbf, 0x91, 0x06, 0x1b, 0xee, 0x84, 0xd5, - 0x72, 0x07, 0x4a, 0x63, 0x03, 0xf3, 0x9f, 0xe8, 0x67, 0x50, 0x70, 0x27, 0x8c, 0x4c, 0x62, 0x97, - 0xd5, 0xca, 0x02, 0xde, 0x72, 0x27, 0xec, 0x3c, 0x76, 0x19, 0xfa, 0x12, 0xca, 0xd3, 0x44, 0x25, - 0x19, 0xbb, 0xf1, 0xb8, 0xb6, 0x21, 0x14, 0x95, 0x24, 0xd6, 0x71, 0xe3, 0x31, 0x6a, 0x80, 0x36, - 0xf2, 0x02, 0xd7, 0x27, 0x03, 0x9f, 0x7d, 0x20, 0x43, 0xea, 0x33, 0xb7, 0xa6, 0x1e, 0x28, 0x8d, - 0x3c, 0xae, 0x0a, 0xbc, 0xe5, 0xb3, 0x0f, 0x6d, 0x8e, 0xa2, 0x27, 0xb0, 0x9d, 0x2a, 0x8b, 0x12, - 0x03, 0x6b, 0xf9, 0x03, 0xa5, 0x51, 0xc4, 0xd5, 0xe9, 0xb2, 0xd9, 0x4f, 0x60, 0x9b, 0x79, 0x13, - 0x1a, 0xce, 0x18, 0x89, 0xe9, 0x20, 0x0c, 0x86, 0x71, 0x6d, 0x33, 0xd1, 0x28, 0xe1, 0x7e, 0x82, - 0x22, 0x1d, 0x2a, 0x23, 0x4a, 0x89, 0xef, 0x4d, 0x3c, 0x46, 0xb8, 0xf9, 0x5b, 0xc2, 0xfc, 0xd2, - 0x88, 0xd2, 0x2e, 0xc7, 0xfa, 0x2e, 0x43, 0x5f, 0x41, 0x75, 0xc1, 0x11, 0x3e, 0x56, 0x04, 0xa9, - 0x9c, 0x92, 0x84, 0xa3, 0xcf, 0x40, 0x0b, 0x67, 0xec, 0x2a, 0xf4, 0x82, 0x2b, 0x32, 0x18, 0xbb, - 0x01, 0xf1, 0x86, 0xb5, 0xc2, 0x81, 0xd2, 0x50, 0x4f, 0x72, 0xcf, 0x15, 0x5c, 0x4d, 0x65, 0xad, - 0xb1, 0x1b, 0x98, 0x43, 0xf4, 0x18, 0xb6, 0x7d, 0x37, 0x66, 0x64, 0x1c, 0x4e, 0xc9, 0x74, 0x76, - 0x79, 0x4d, 0x6f, 0x6a, 0x55, 0x11, 0x99, 0x0a, 0x87, 0x3b, 0xe1, 0xb4, 0x27, 0x40, 0xf4, 0x08, - 0x40, 0x44, 0x45, 0x6c, 0x5e, 0x2b, 0x0a, 0x1f, 0x8a, 0x1c, 0x11, 0x1b, 0xa3, 0x6f, 0xa1, 0x24, - 0xb2, 0x49, 0xc6, 0x5e, 0xc0, 0xe2, 0x1a, 0x1c, 0x6c, 0x34, 0x4a, 0xc7, 0xda, 0xa1, 0x1f, 0xf0, - 0xc4, 0x62, 0x2e, 0xe9, 0x78, 0x01, 0xc3, 0x10, 0xa5, 0x3f, 0x63, 0x34, 0x84, 0x5d, 0x9e, 0x45, - 0x32, 0x98, 0xc5, 0x2c, 0x9c, 0x90, 0x88, 0x0e, 0xc2, 0x68, 0x18, 0xd7, 0x4a, 0x62, 0xe9, 0xaf, - 0x0e, 0xe7, 0xc5, 0x71, 0x78, 0xbb, 0x1a, 0x0e, 0xdb, 0x34, 0x66, 0x2d, 0xb1, 0x0e, 0x27, 0xcb, - 0x8c, 0x80, 0x45, 0x37, 0x78, 0x67, 0xb8, 0x8a, 0xa3, 0x67, 0x80, 0x5c, 0xdf, 0x0f, 0x3f, 0x92, - 0x98, 0xfa, 0x23, 0x22, 0xb3, 0x53, 0xdb, 0x3e, 0x50, 0x1a, 0x05, 0xac, 0x09, 0x49, 0x9f, 0xfa, - 0x23, 0xa9, 0x1e, 0xfd, 0x1a, 0x2a, 0xc2, 0xa6, 0x11, 0x75, 0xd9, 0x2c, 0xa2, 0x71, 0x4d, 0x3b, - 0xd8, 0x68, 0x54, 0x8f, 0x77, 0xa4, 0x23, 0xa7, 0x09, 0x7c, 0xe2, 0x31, 0x5c, 0xe6, 0x3c, 0xf9, - 0x1d, 0xd7, 0xdb, 0xb0, 0xb7, 0xde, 0x24, 0x5e, 0xa3, 0x3c, 0xa6, 0xbc, 0x6c, 0x55, 0xcc, 0x7f, - 0xa2, 0xfb, 0x90, 0xff, 0xe0, 0xfa, 0x33, 0x2a, 0xea, 0xb6, 0x8c, 0x93, 0x8f, 0xdf, 0xe6, 0x5e, - 0x28, 0xfa, 0x0b, 0xd8, 0x75, 0x22, 0x77, 0x70, 0xbd, 0x52, 0xfa, 0xab, 0x95, 0xab, 0xdc, 0xaa, - 0x5c, 0xfd, 0x1f, 0x0a, 0x54, 0xe4, 0xaa, 0x3e, 0x73, 0xd9, 0x2c, 0x46, 0xdf, 0x40, 0x3e, 0x66, - 0x2e, 0xa3, 0x82, 0x5d, 0x3d, 0x7e, 0x90, 0x89, 0x67, 0x86, 0x48, 0x71, 0xc2, 0x42, 0x75, 0x28, - 0x4c, 0x23, 0xea, 0x4d, 0xdc, 0xab, 0xd4, 0xae, 0xf9, 0x37, 0xd2, 0x21, 0x2f, 0x16, 0x8b, 0x96, - 0x29, 0x1d, 0x97, 0xb3, 0x59, 0xc5, 0x89, 0x08, 0x35, 0x20, 0x3f, 0x66, 0xfe, 0x20, 0xae, 0xa9, - 0x22, 0x7d, 0x48, 0x72, 0x3a, 0x4e, 0xb7, 0xd5, 0x64, 0x8c, 0x4e, 0xa6, 0x0c, 0x27, 0x04, 0xfd, - 0x7b, 0xd8, 0x16, 0x2b, 0x4f, 0x29, 0xfd, 0x54, 0x6f, 0x3f, 0x00, 0xde, 0xb9, 0xa2, 0x13, 0x92, - 0xfe, 0xde, 0x74, 0x27, 0xbc, 0x09, 0xf4, 0x21, 0x68, 0x8b, 0xf5, 0xf1, 0x34, 0x0c, 0x62, 0xbe, - 0xbb, 0xc6, 0xcd, 0xe0, 0x15, 0xcf, 0x1b, 0x44, 0xb4, 0x86, 0x22, 0x56, 0x55, 0x25, 0x7e, 0x4a, - 0xa9, 0x68, 0x8e, 0xc7, 0x49, 0x3f, 0x12, 0x3f, 0x1c, 0x5c, 0xf3, 0x0e, 0x77, 0x6f, 0xa4, 0xfa, - 0x0a, 0x87, 0xbb, 0xe1, 0xe0, 0xba, 0xcd, 0x41, 0xfd, 0x7d, 0x72, 0x08, 0x39, 0x61, 0xe2, 0xe5, - 0x4f, 0xce, 0xc4, 0x22, 0x58, 0xb9, 0x3b, 0x83, 0xa5, 0xbf, 0x87, 0xdd, 0x25, 0xe5, 0xd2, 0x8b, - 0x6c, 0x0e, 0x94, 0x95, 0x1c, 0x34, 0x60, 0x6b, 0xe4, 0x7a, 0xfe, 0x2c, 0x4a, 0x15, 0x57, 0xd3, - 0x92, 0x4c, 0x50, 0x9c, 0x8a, 0xf5, 0x87, 0x50, 0xc7, 0x34, 0xa6, 0xec, 0xdc, 0x8b, 0x63, 0x2f, - 0x0c, 0x5a, 0x61, 0xc0, 0xa2, 0xd0, 0x97, 0x1e, 0xe8, 0x8f, 0x60, 0x7f, 0xad, 0x34, 0x31, 0x81, - 0x2f, 0xfe, 0x61, 0x46, 0xa3, 0x9b, 0xf5, 0x8b, 0x7f, 0x80, 0xfd, 0xb5, 0x52, 0x69, 0xff, 0x33, - 0xc8, 0x4f, 0x5d, 0x2f, 0x8a, 0x6b, 0x39, 0x51, 0x03, 0x7b, 0x4b, 0x25, 0xe7, 0x45, 0x1d, 0x2f, - 0x66, 0x61, 0x74, 0x83, 0x13, 0xd2, 0x99, 0x5a, 0x50, 0xb4, 0x9c, 0xfe, 0x37, 0x05, 0x4a, 0x19, - 0x21, 0xda, 0x87, 0x62, 0x10, 0x0e, 0x29, 0x19, 0x45, 0xe1, 0x24, 0x0d, 0x02, 0x07, 0x4e, 0xa3, - 0x70, 0xc2, 0x6b, 0x42, 0x08, 0x59, 0x28, 0x6b, 0x74, 0x93, 0x7f, 0x3a, 0x21, 0xfa, 0x06, 0xb6, - 0xc6, 0x89, 0x02, 0x71, 0x6c, 0x96, 0x8e, 0x77, 0x57, 0xf6, 0x6e, 0xbb, 0xcc, 0xc5, 0x29, 0xe7, - 0x4c, 0x2d, 0x6c, 0x68, 0xea, 0x99, 0x5a, 0x50, 0xb5, 0xfc, 0x99, 0x5a, 0xc8, 0x6b, 0x9b, 0x67, - 0x6a, 0x61, 0x53, 0xdb, 0xd2, 0xff, 0xa3, 0x40, 0x21, 0x65, 0x73, 0x4b, 0x78, 0x48, 0x09, 0xaf, - 0x0b, 0x59, 0x4c, 0x05, 0x0e, 0x38, 0xde, 0x84, 0xa2, 0x03, 0x28, 0x0b, 0xe1, 0x72, 0x89, 0x02, - 0xc7, 0x9a, 0xa2, 0x4c, 0xc5, 0x79, 0x9e, 0x32, 0x44, 0x3d, 0xaa, 0xf2, 0x3c, 0x4f, 0x28, 0xe9, - 0x48, 0x8a, 0x67, 0x83, 0x01, 0x8d, 0xe3, 0x64, 0x97, 0x7c, 0x42, 0x91, 0x98, 0xd8, 0xe8, 0x31, - 0x6c, 0xa7, 0x94, 0x74, 0xaf, 0xcd, 0xa4, 0x5e, 0x25, 0x2c, 0xb7, 0x6b, 0x80, 0x96, 0xe5, 0x4d, - 0x16, 0x13, 0xa4, 0xba, 0x20, 0xf2, 0x4d, 0x13, 0xe7, 0xf5, 0x3f, 0xc1, 0x03, 0x91, 0xca, 0x5e, - 0x14, 0x5e, 0xba, 0x97, 0x9e, 0xef, 0xb1, 0x9b, 0xb4, 0xc8, 0xb9, 0xe3, 0x51, 0x38, 0x21, 0x3c, - 0xb6, 0x69, 0x0a, 0x38, 0x60, 0x85, 0x43, 0xca, 0x53, 0xc0, 0xc2, 0x44, 0x24, 0x53, 0xc0, 0x42, - 0x21, 0xc8, 0x4e, 0xde, 0x8d, 0xa5, 0xc9, 0xab, 0x5f, 0x43, 0xed, 0xf6, 0x5e, 0xb2, 0x66, 0x0e, - 0xa0, 0x34, 0x5d, 0xc0, 0x62, 0x3b, 0x05, 0x67, 0xa1, 0x6c, 0x6e, 0x73, 0x3f, 0x9e, 0x5b, 0xfd, - 0xef, 0x0a, 0xec, 0x9c, 0xcc, 0x3c, 0x7f, 0xb8, 0xd4, 0xb8, 0x59, 0xeb, 0x94, 0xe5, 0x7b, 0xc1, - 0xba, 0xa1, 0x9f, 0x5b, 0x3b, 0xf4, 0xd7, 0x0d, 0xd6, 0x8d, 0x3b, 0x07, 0xeb, 0x17, 0x50, 0x5a, - 0xcc, 0xd4, 0xe4, 0x5c, 0x2c, 0x63, 0x18, 0xa7, 0x03, 0x35, 0xd6, 0x5f, 0x00, 0xca, 0x1a, 0x2a, - 0x03, 0x32, 0x3f, 0x3f, 0x94, 0xbb, 0xcf, 0x8f, 0x87, 0x50, 0xef, 0xcf, 0x2e, 0xe3, 0x41, 0xe4, - 0x5d, 0xd2, 0x0e, 0xf3, 0x07, 0xc6, 0x07, 0x1a, 0xb0, 0x38, 0xed, 0xd2, 0xff, 0xaa, 0x50, 0x9c, - 0xa3, 0xe8, 0x10, 0x76, 0xbd, 0x60, 0x10, 0x4e, 0x52, 0xa3, 0x03, 0xea, 0x73, 0xbb, 0x93, 0x79, - 0xb4, 0x93, 0x8a, 0x5a, 0x89, 0xc4, 0x1c, 0x72, 0xfe, 0x92, 0x93, 0x92, 0x9f, 0x4b, 0xf8, 0x59, - 0x1f, 0x13, 0x7e, 0x03, 0xb4, 0xb9, 0x7e, 0x7e, 0xc0, 0xcf, 0x83, 0x82, 0xab, 0x29, 0xce, 0x8d, - 0x49, 0x98, 0x73, 0xcd, 0x29, 0x53, 0x4d, 0x98, 0x29, 0x2e, 0x99, 0x5f, 0x42, 0x99, 0xf7, 0x43, - 0xcc, 0xdc, 0xc9, 0x94, 0x04, 0xb1, 0xe8, 0x0b, 0x15, 0x97, 0xe6, 0x98, 0x15, 0xa3, 0xef, 0x00, - 0x28, 0xf7, 0x8f, 0xb0, 0x9b, 0x29, 0x15, 0x2d, 0x51, 0x3d, 0xfe, 0x3c, 0x53, 0x18, 0xf3, 0x00, - 0x1c, 0x8a, 0x7f, 0x9d, 0x9b, 0x29, 0xc5, 0x45, 0x9a, 0xfe, 0x44, 0xdf, 0x43, 0x65, 0x14, 0x46, - 0x1f, 0xdd, 0x68, 0x48, 0x04, 0x28, 0x8f, 0x8d, 0xec, 0x94, 0x3c, 0x4d, 0xe4, 0x62, 0x79, 0xe7, - 0x1e, 0x2e, 0x8f, 0x32, 0xdf, 0xe8, 0x15, 0xa0, 0x74, 0xbd, 0xe8, 0xf2, 0x44, 0x49, 0x41, 0x28, - 0xd9, 0xbf, 0xad, 0x84, 0x1f, 0xd2, 0xa9, 0x22, 0x6d, 0xb4, 0x82, 0xa1, 0xdf, 0x41, 0x39, 0xa6, - 0x8c, 0xf9, 0x54, 0xaa, 0x29, 0x0a, 0x35, 0x7b, 0x4b, 0x37, 0x20, 0x2e, 0x4e, 0x35, 0x94, 0xe2, - 0xc5, 0x27, 0x3a, 0x81, 0x6d, 0xdf, 0x0b, 0xae, 0xb3, 0x66, 0x80, 0x58, 0x5f, 0xcb, 0xac, 0xef, - 0x7a, 0xc1, 0x75, 0xd6, 0x86, 0x8a, 0x9f, 0x05, 0xf4, 0xdf, 0x43, 0x71, 0x1e, 0x25, 0x54, 0x82, - 0xad, 0x0b, 0xeb, 0x95, 0x65, 0xbf, 0xb1, 0xb4, 0x7b, 0xa8, 0x00, 0x6a, 0xdf, 0xb0, 0xda, 0x9a, - 0xc2, 0x61, 0x6c, 0xb4, 0x0c, 0xf3, 0xb5, 0xa1, 0xe5, 0xf8, 0xc7, 0xa9, 0x8d, 0xdf, 0x34, 0x71, - 0x5b, 0xdb, 0x38, 0xd9, 0x82, 0xbc, 0xd8, 0x57, 0xff, 0x97, 0x02, 0x05, 0x91, 0xc1, 0x60, 0x14, - 0xa2, 0x5f, 0xc0, 0xbc, 0xb8, 0xc4, 0xe1, 0xc6, 0x07, 0xae, 0xa8, 0xba, 0x0a, 0x9e, 0x17, 0x8c, - 0x23, 0x71, 0x4e, 0x9e, 0x97, 0xc6, 0x9c, 0x9c, 0x4b, 0xc8, 0xa9, 0x60, 0x4e, 0x7e, 0x9a, 0xd1, - 0xbc, 0x74, 0xe4, 0xa8, 0x78, 0x3b, 0x15, 0xa4, 0x27, 0xec, 0xd3, 0x8c, 0xe2, 0xa5, 0x93, 0x58, - 0xc5, 0xdb, 0xa9, 0x40, 0x72, 0xf5, 0xdf, 0x40, 0x39, 0x9b, 0x73, 0xf4, 0x04, 0x54, 0x2f, 0x18, - 0x85, 0xb2, 0x11, 0x77, 0x57, 0x8a, 0x8b, 0x3b, 0x89, 0x05, 0x41, 0x47, 0xa0, 0xad, 0xe6, 0x59, - 0xaf, 0x40, 0x29, 0x93, 0x34, 0xfd, 0xdf, 0x0a, 0x54, 0x96, 0x92, 0xf0, 0x93, 0xb5, 0xa3, 0xef, - 0xa0, 0xfc, 0xd1, 0x8b, 0x28, 0xc9, 0x8e, 0xff, 0xea, 0x71, 0x7d, 0x79, 0xfc, 0xa7, 0xff, 0xb7, - 0xc2, 0x21, 0xc5, 0x25, 0xce, 0x97, 0x00, 0xfa, 0x03, 0x54, 0xe5, 0x4a, 0x32, 0xa4, 0xcc, 0xf5, - 0x7c, 0x11, 0xaa, 0xea, 0x52, 0x79, 0x48, 0x6e, 0x5b, 0xc8, 0x71, 0x65, 0x94, 0xfd, 0x44, 0x5f, - 0x2f, 0x14, 0xc4, 0x2c, 0xf2, 0x82, 0x2b, 0x11, 0xbf, 0xe2, 0x9c, 0xd6, 0x17, 0xe0, 0xd3, 0x7f, - 0x2a, 0x50, 0xce, 0x5e, 0x2c, 0x51, 0x05, 0x8a, 0xa6, 0x45, 0x4e, 0xbb, 0xe6, 0xcb, 0x8e, 0xa3, - 0xdd, 0xe3, 0x9f, 0xfd, 0x8b, 0x56, 0xcb, 0x30, 0xda, 0x06, 0x2f, 0x27, 0x04, 0xd5, 0xd3, 0xa6, - 0xd9, 0x35, 0xda, 0xc4, 0x31, 0xcf, 0x0d, 0xfb, 0xc2, 0xd1, 0x72, 0x68, 0x17, 0xb6, 0x25, 0x66, - 0xd9, 0x04, 0xdb, 0x17, 0x8e, 0xa1, 0x6d, 0x20, 0x0d, 0xca, 0x12, 0x34, 0x30, 0xb6, 0xb1, 0xa6, - 0xa2, 0xaf, 0xe0, 0x40, 0x22, 0xa6, 0xd5, 0xb2, 0x31, 0x36, 0x5a, 0x0e, 0xe9, 0x35, 0xdf, 0x9d, - 0x1b, 0x96, 0x43, 0xda, 0x86, 0xd3, 0x34, 0xbb, 0x7d, 0x2d, 0x8f, 0xbe, 0x80, 0xfd, 0x39, 0xab, - 0x7f, 0x71, 0x7a, 0x6a, 0xb6, 0x4c, 0x4e, 0x38, 0x69, 0x76, 0x9b, 0x56, 0xcb, 0xd0, 0x36, 0x9f, - 0xfe, 0x45, 0x85, 0xca, 0x92, 0xe3, 0xcb, 0x95, 0x5f, 0x81, 0xa2, 0x65, 0x4b, 0x7d, 0x9a, 0xc2, - 0xcd, 0xb0, 0x2d, 0xd3, 0xb6, 0x48, 0xdb, 0x68, 0xd9, 0x6d, 0xde, 0x03, 0x9f, 0xc1, 0x4e, 0xd7, - 0xb4, 0x5e, 0x11, 0xcb, 0x76, 0x88, 0xd1, 0x35, 0x5f, 0x9a, 0x27, 0x5d, 0x6e, 0xef, 0x7d, 0xd0, - 0x6c, 0x8b, 0xb4, 0x3a, 0x4d, 0xd3, 0x9a, 0xbb, 0xa6, 0x72, 0x94, 0x5f, 0x85, 0x89, 0xf1, 0x96, - 0x47, 0xa0, 0x4f, 0xce, 0x9b, 0x6f, 0xb5, 0x3c, 0xaa, 0xc1, 0xfd, 0xf5, 0xc6, 0xa1, 0x3d, 0x40, - 0xdc, 0xb9, 0xf3, 0x5e, 0xd7, 0x70, 0x0c, 0x92, 0xf6, 0xda, 0x16, 0x0f, 0x91, 0xd0, 0xd3, 0x6c, - 0xb7, 0x49, 0xe2, 0x9e, 0x56, 0xe0, 0x96, 0x48, 0x46, 0x9f, 0xb4, 0xcd, 0x7e, 0xf3, 0x84, 0xc3, - 0x45, 0xbe, 0xa7, 0x69, 0xbd, 0xb6, 0xcd, 0x96, 0x41, 0x5a, 0x5c, 0x2d, 0x47, 0x81, 0x93, 0x53, - 0xf4, 0xc2, 0x6a, 0x1b, 0xb8, 0xd7, 0x34, 0xdb, 0x5a, 0x09, 0xed, 0xc3, 0x83, 0x14, 0x36, 0xde, - 0xf6, 0x4c, 0xfc, 0x8e, 0x38, 0xb6, 0x4d, 0xfa, 0xb6, 0x6d, 0x69, 0xe5, 0xac, 0x26, 0xee, 0xad, - 0xdd, 0x33, 0x2c, 0xad, 0x82, 0x1e, 0xc0, 0xee, 0x79, 0xaf, 0x47, 0x52, 0x49, 0xea, 0x6c, 0x95, - 0xd3, 0x9b, 0xed, 0x36, 0x36, 0xfa, 0x7d, 0x72, 0x6e, 0xf6, 0xcf, 0x9b, 0x4e, 0xab, 0xa3, 0x6d, - 0x73, 0x97, 0xfa, 0x86, 0x43, 0x1c, 0xdb, 0x69, 0x76, 0x17, 0xb8, 0xc6, 0x0d, 0x5a, 0xe0, 0x7c, - 0xd3, 0xae, 0xfd, 0x46, 0xdb, 0xe1, 0x01, 0xe7, 0xb0, 0xfd, 0x5a, 0x9a, 0x88, 0xb8, 0xef, 0x32, - 0x3d, 0xe9, 0x9e, 0xda, 0x2e, 0x07, 0x4d, 0xeb, 0x75, 0xb3, 0x6b, 0xb6, 0xc9, 0x2b, 0xe3, 0x9d, - 0x38, 0xab, 0xee, 0x73, 0x30, 0xb1, 0x8c, 0xf4, 0xb0, 0xfd, 0x92, 0x1b, 0xa2, 0x7d, 0xc6, 0x2b, - 0xae, 0x65, 0xe2, 0xd6, 0x45, 0xb7, 0x89, 0x65, 0x71, 0xed, 0x1d, 0xff, 0x75, 0x13, 0x36, 0xc5, - 0x64, 0x8d, 0x50, 0x87, 0x37, 0xec, 0xfc, 0x9d, 0x89, 0x1e, 0x7d, 0xf2, 0xfd, 0x59, 0xaf, 0xad, - 0x7f, 0x4e, 0xcd, 0xe2, 0xe7, 0x0a, 0x3a, 0x83, 0x72, 0xf6, 0x15, 0x87, 0xb2, 0x63, 0x69, 0xcd, - 0xf3, 0xee, 0x93, 0xba, 0x5e, 0x81, 0x66, 0xc4, 0xcc, 0x9b, 0xf0, 0x97, 0x9a, 0x7c, 0xf4, 0xa0, - 0x7a, 0x86, 0xbf, 0xf2, 0x92, 0xaa, 0xef, 0xaf, 0x95, 0xc9, 0xab, 0x45, 0x37, 0x71, 0x51, 0x3e, - 0x3b, 0x6e, 0xb9, 0xb8, 0xfc, 0xd6, 0xa9, 0x7f, 0x7e, 0x97, 0x58, 0x6a, 0x1b, 0xc2, 0xee, 0x9a, - 0x97, 0x04, 0xfa, 0x3a, 0x6b, 0xc1, 0x9d, 0xef, 0x90, 0xfa, 0xe3, 0x1f, 0xa3, 0x2d, 0x76, 0x59, - 0xf3, 0xe4, 0x58, 0xda, 0xe5, 0xee, 0x07, 0xcb, 0xd2, 0x2e, 0x9f, 0x7a, 0xb9, 0xbc, 0x07, 0x6d, - 0xf5, 0x86, 0x8a, 0xf4, 0xd5, 0xb5, 0xb7, 0xaf, 0xca, 0xf5, 0x9f, 0x7f, 0x92, 0x23, 0x95, 0x9b, - 0x00, 0x8b, 0x7b, 0x1e, 0x7a, 0x98, 0x59, 0x72, 0xeb, 0x9e, 0x5a, 0x7f, 0x74, 0x87, 0x54, 0xaa, - 0x72, 0x60, 0x77, 0xcd, 0xc5, 0x6f, 0x29, 0x1a, 0x77, 0x5f, 0x0c, 0xeb, 0xf7, 0xd7, 0xdd, 0x8f, - 0x9e, 0x2b, 0x27, 0xdf, 0xfe, 0xf1, 0xe8, 0xca, 0x63, 0xe3, 0xd9, 0xe5, 0xe1, 0x20, 0x9c, 0x1c, - 0xf9, 0xde, 0xd5, 0x98, 0x05, 0x5e, 0x70, 0x15, 0x50, 0xf6, 0x31, 0x8c, 0xae, 0x8f, 0xfc, 0x60, - 0x78, 0x24, 0x86, 0xcd, 0xd1, 0x7c, 0xf9, 0xe5, 0xa6, 0xf8, 0x5b, 0xdd, 0x2f, 0xff, 0x1f, 0x00, - 0x00, 0xff, 0xff, 0xe9, 0x0c, 0xc3, 0x27, 0xdb, 0x13, 0x00, 0x00, + // 2150 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x58, 0xdd, 0x72, 0xdb, 0xb8, + 0x15, 0x0e, 0x6d, 0xca, 0x96, 0x8e, 0x7e, 0x4c, 0x43, 0x59, 0x47, 0x95, 0x93, 0x5d, 0x2d, 0xbb, + 0x9b, 0x68, 0xd2, 0xac, 0x9d, 0x75, 0x3b, 0x6d, 0xa6, 0xed, 0x6e, 0x47, 0x96, 0xe8, 0x88, 0x8e, + 0x4c, 0x6a, 0x21, 0x3a, 0x3f, 0xcd, 0x05, 0x86, 0x96, 0x20, 0x8b, 0x35, 0x45, 0xaa, 0x24, 0x94, + 0x8c, 0x2f, 0x3b, 0xbd, 0xeb, 0x8b, 0xf4, 0xae, 0x4f, 0xd0, 0x77, 0xe9, 0x6d, 0x9f, 0xa0, 0xd3, + 0xcb, 0x1d, 0x80, 0xa0, 0x44, 0xd9, 0x72, 0x76, 0x6f, 0x12, 0xf1, 0x3b, 0x1f, 0x0e, 0xce, 0x39, + 0xf8, 0x80, 0x03, 0x18, 0xf6, 0xa2, 0x70, 0xce, 0x68, 0x14, 0xcd, 0x86, 0x87, 0xc9, 0xaf, 0x83, + 0x59, 0x14, 0xb2, 0x10, 0x15, 0x16, 0x78, 0xbd, 0x10, 0xcd, 0x86, 0x09, 0xaa, 0xff, 0x3f, 0x07, + 0x68, 0x40, 0x83, 0x51, 0xdf, 0xbd, 0x9e, 0xd2, 0x80, 0x61, 0xfa, 0xd7, 0x39, 0x8d, 0x19, 0x42, + 0xa0, 0x8e, 0x68, 0xcc, 0x6a, 0x4a, 0x43, 0x69, 0x96, 0xb0, 0xf8, 0x8d, 0x34, 0xd8, 0x74, 0xa7, + 0xac, 0xb6, 0xd1, 0x50, 0x9a, 0x9b, 0x98, 0xff, 0x44, 0xbf, 0x80, 0xbc, 0x3b, 0x65, 0x64, 0x1a, + 0xbb, 0xac, 0x56, 0x12, 0xf0, 0xb6, 0x3b, 0x65, 0x67, 0xb1, 0xcb, 0xd0, 0x97, 0x50, 0x9a, 0x25, + 0x2e, 0xc9, 0xc4, 0x8d, 0x27, 0xb5, 0x4d, 0xe1, 0xa8, 0x28, 0xb1, 0xae, 0x1b, 0x4f, 0x50, 0x13, + 0xb4, 0xb1, 0x17, 0xb8, 0x3e, 0x19, 0xfa, 0xec, 0x03, 0x19, 0x51, 0x9f, 0xb9, 0x35, 0xb5, 0xa1, + 0x34, 0x73, 0xb8, 0x22, 0xf0, 0xb6, 0xcf, 0x3e, 0x74, 0x38, 0x8a, 0x9e, 0xc0, 0x4e, 0xea, 0x2c, + 0x4a, 0x02, 0xac, 0xe5, 0x1a, 0x4a, 0xb3, 0x80, 0x2b, 0xb3, 0xd5, 0xb0, 0x9f, 0xc0, 0x0e, 0xf3, + 0xa6, 0x34, 0x9c, 0x33, 0x12, 0xd3, 0x61, 0x18, 0x8c, 0xe2, 0xda, 0x56, 0xe2, 0x51, 0xc2, 0x83, + 0x04, 0x45, 0x3a, 0x94, 0xc7, 0x94, 0x12, 0xdf, 0x9b, 0x7a, 0x8c, 0xf0, 0xf0, 0xb7, 0x45, 0xf8, + 0xc5, 0x31, 0xa5, 0x3d, 0x8e, 0x0d, 0x5c, 0x86, 0xbe, 0x82, 0xca, 0x92, 0x23, 0x72, 0x2c, 0x0b, + 0x52, 0x29, 0x25, 0x89, 0x44, 0x9f, 0x81, 0x16, 0xce, 0xd9, 0x65, 0xe8, 0x05, 0x97, 0x64, 0x38, + 0x71, 0x03, 0xe2, 0x8d, 0x6a, 0xf9, 0x86, 0xd2, 0x54, 0x8f, 0x37, 0x9e, 0x2b, 0xb8, 0x92, 0xda, + 0xda, 0x13, 0x37, 0x30, 0x47, 0xe8, 0x31, 0xec, 0xf8, 0x6e, 0xcc, 0xc8, 0x24, 0x9c, 0x91, 0xd9, + 0xfc, 0xe2, 0x8a, 0x5e, 0xd7, 0x2a, 0xa2, 0x32, 0x65, 0x0e, 0x77, 0xc3, 0x59, 0x5f, 0x80, 0xe8, + 0x11, 0x80, 0xa8, 0x8a, 0x98, 0xbc, 0x56, 0x10, 0x39, 0x14, 0x38, 0x22, 0x26, 0x46, 0xdf, 0x42, + 0x51, 0xac, 0x26, 0x99, 0x78, 0x01, 0x8b, 0x6b, 0xd0, 0xd8, 0x6c, 0x16, 0x8f, 0xb4, 0x03, 0x3f, + 0xe0, 0x0b, 0x8b, 0xb9, 0xa5, 0xeb, 0x05, 0x0c, 0x43, 0x94, 0xfe, 0x8c, 0xd1, 0x08, 0xaa, 0x7c, + 0x15, 0xc9, 0x70, 0x1e, 0xb3, 0x70, 0x4a, 0x22, 0x3a, 0x0c, 0xa3, 0x51, 0x5c, 0x2b, 0x8a, 0xa1, + 0xbf, 0x39, 0x58, 0x88, 0xe3, 0xe0, 0xb6, 0x1a, 0x0e, 0x3a, 0x34, 0x66, 0x6d, 0x31, 0x0e, 0x27, + 0xc3, 0x8c, 0x80, 0x45, 0xd7, 0x78, 0x77, 0x74, 0x13, 0x47, 0xcf, 0x00, 0xb9, 0xbe, 0x1f, 0x7e, + 0x24, 0x31, 0xf5, 0xc7, 0x44, 0xae, 0x4e, 0x6d, 0xa7, 0xa1, 0x34, 0xf3, 0x58, 0x13, 0x96, 0x01, + 0xf5, 0xc7, 0xd2, 0x3d, 0xfa, 0x2d, 0x94, 0x45, 0x4c, 0x63, 0xea, 0xb2, 0x79, 0x44, 0xe3, 0x9a, + 0xd6, 0xd8, 0x6c, 0x56, 0x8e, 0x76, 0x65, 0x22, 0x27, 0x09, 0x7c, 0xec, 0x31, 0x5c, 0xe2, 0x3c, + 0xf9, 0x1d, 0xd7, 0x3b, 0xb0, 0xb7, 0x3e, 0x24, 0xae, 0x51, 0x5e, 0x53, 0x2e, 0x5b, 0x15, 0xf3, + 0x9f, 0xe8, 0x3e, 0xe4, 0x3e, 0xb8, 0xfe, 0x9c, 0x0a, 0xdd, 0x96, 0x70, 0xf2, 0xf1, 0xfb, 0x8d, + 0x17, 0x8a, 0xfe, 0x02, 0xaa, 0x4e, 0xe4, 0x0e, 0xaf, 0x6e, 0x48, 0xff, 0xa6, 0x72, 0x95, 0x5b, + 0xca, 0xd5, 0xff, 0xa1, 0x40, 0x59, 0x8e, 0x1a, 0x30, 0x97, 0xcd, 0x63, 0xf4, 0x0d, 0xe4, 0x62, + 0xe6, 0x32, 0x2a, 0xd8, 0x95, 0xa3, 0x07, 0x99, 0x7a, 0x66, 0x88, 0x14, 0x27, 0x2c, 0x54, 0x87, + 0xfc, 0x2c, 0xa2, 0xde, 0xd4, 0xbd, 0x4c, 0xe3, 0x5a, 0x7c, 0xa3, 0x26, 0xe4, 0x26, 0xcc, 0x1f, + 0xc6, 0x35, 0x55, 0x2c, 0x0d, 0x92, 0xc5, 0xe8, 0x3a, 0xbd, 0x76, 0x8b, 0x31, 0x3a, 0x9d, 0x31, + 0x9c, 0x10, 0x4e, 0xd5, 0xfc, 0xa6, 0xa6, 0xea, 0xdf, 0xc3, 0x8e, 0x58, 0xf1, 0x13, 0x4a, 0x3f, + 0xb5, 0x7b, 0x1f, 0x00, 0xdf, 0x9b, 0x42, 0xeb, 0xc9, 0x0e, 0xde, 0x72, 0xa7, 0x5c, 0xe6, 0xfa, + 0x08, 0xb4, 0xe5, 0xf8, 0x78, 0x16, 0x06, 0x31, 0x8f, 0x41, 0xe3, 0x09, 0x70, 0x4d, 0xf3, 0x2d, + 0x20, 0xc4, 0xaf, 0x88, 0x51, 0x15, 0x89, 0x9f, 0x50, 0x2a, 0xe4, 0xff, 0x38, 0xd9, 0x71, 0xc4, + 0x0f, 0x87, 0x57, 0x7c, 0x0f, 0xbb, 0xd7, 0xd2, 0x7d, 0x99, 0xc3, 0xbd, 0x70, 0x78, 0xd5, 0xe1, + 0xa0, 0xfe, 0x3e, 0x39, 0x66, 0x9c, 0x50, 0xcc, 0xf5, 0xf3, 0x6b, 0x8d, 0x74, 0xc8, 0x89, 0x5a, + 0x0a, 0xb7, 0xc5, 0xa3, 0x52, 0x56, 0xe4, 0x38, 0x31, 0xe9, 0xef, 0xa1, 0xba, 0xe2, 0x5c, 0x66, + 0x91, 0xad, 0xb2, 0x72, 0xab, 0xca, 0xdb, 0x63, 0xd7, 0xf3, 0xe7, 0x51, 0xea, 0xb8, 0x92, 0x8a, + 0x2e, 0x41, 0x71, 0x6a, 0xd6, 0x1f, 0x42, 0x1d, 0xd3, 0x98, 0xb2, 0x33, 0x2f, 0x8e, 0xbd, 0x30, + 0x68, 0x87, 0x01, 0x8b, 0x42, 0x5f, 0x66, 0xa0, 0x3f, 0x82, 0xfd, 0xb5, 0xd6, 0x24, 0x04, 0x3e, + 0xf8, 0x87, 0x39, 0x8d, 0xae, 0xd7, 0x0f, 0xfe, 0x01, 0xf6, 0xd7, 0x5a, 0x65, 0xfc, 0xcf, 0x20, + 0x37, 0x73, 0xbd, 0x28, 0xae, 0x6d, 0x08, 0x25, 0xec, 0xad, 0x88, 0xca, 0x8b, 0xba, 0x5e, 0xcc, + 0xc2, 0xe8, 0x1a, 0x27, 0xa4, 0x53, 0x35, 0xaf, 0x68, 0x1b, 0x5c, 0x9a, 0xc5, 0x8c, 0x11, 0xed, + 0x43, 0x21, 0x08, 0x47, 0x94, 0x8c, 0xa3, 0x70, 0x9a, 0x16, 0x81, 0x03, 0x27, 0x51, 0x38, 0xe5, + 0x9a, 0x10, 0x46, 0x16, 0x4a, 0x15, 0x6e, 0xf1, 0x4f, 0x27, 0x44, 0xdf, 0xc0, 0xf6, 0x24, 0x71, + 0x20, 0x0e, 0xc6, 0xe2, 0x51, 0xf5, 0xc6, 0xdc, 0x1d, 0x97, 0xb9, 0x38, 0xe5, 0x24, 0x42, 0x3c, + 0x55, 0xf3, 0xaa, 0x96, 0x3b, 0x55, 0xf3, 0x39, 0x6d, 0xeb, 0x54, 0xcd, 0x6f, 0x69, 0xdb, 0xfa, + 0x7f, 0x15, 0xc8, 0xa7, 0x6c, 0x1e, 0x09, 0x2f, 0x29, 0xe1, 0xba, 0x90, 0x62, 0xca, 0x73, 0xc0, + 0xf1, 0xa6, 0x14, 0x35, 0xa0, 0x24, 0x8c, 0xab, 0x12, 0x05, 0x8e, 0xb5, 0x84, 0x4c, 0xc5, 0x89, + 0x9d, 0x32, 0x84, 0x1e, 0x55, 0x79, 0x62, 0x27, 0x94, 0xb4, 0xe9, 0xc4, 0xf3, 0xe1, 0x90, 0xc6, + 0x71, 0x32, 0x4b, 0x2e, 0xa1, 0x48, 0x4c, 0x4c, 0xf4, 0x18, 0x76, 0x52, 0x4a, 0x3a, 0xd7, 0x56, + 0xa2, 0x57, 0x09, 0xcb, 0xe9, 0x9a, 0xa0, 0x65, 0x79, 0xd3, 0x65, 0x8f, 0xa8, 0x2c, 0x89, 0x7c, + 0x52, 0xb9, 0x0b, 0xff, 0x02, 0x0f, 0xc4, 0x52, 0xf6, 0xa3, 0xf0, 0xc2, 0xbd, 0xf0, 0x7c, 0x8f, + 0x5d, 0xa7, 0x22, 0xe7, 0x89, 0x47, 0xe1, 0x94, 0xf0, 0xda, 0xa6, 0x4b, 0xc0, 0x01, 0x2b, 0x1c, + 0x51, 0xbe, 0x04, 0x2c, 0x4c, 0x4c, 0x72, 0x09, 0x58, 0x28, 0x0c, 0xd9, 0xde, 0xba, 0xb9, 0xd2, + 0x5b, 0xf5, 0x2b, 0xa8, 0xdd, 0x9e, 0x4b, 0x6a, 0xa6, 0x01, 0xc5, 0xd9, 0x12, 0x16, 0xd3, 0x29, + 0x38, 0x0b, 0x65, 0xd7, 0x76, 0xe3, 0xa7, 0xd7, 0x56, 0xff, 0xa7, 0x02, 0xbb, 0xc7, 0x73, 0xcf, + 0x1f, 0xad, 0x6c, 0xdc, 0x6c, 0x74, 0xca, 0x6a, 0xe7, 0x5f, 0xd7, 0xd6, 0x37, 0xd6, 0xb6, 0xf5, + 0x75, 0xad, 0x73, 0xf3, 0xce, 0xd6, 0xf9, 0x05, 0x14, 0x97, 0x5d, 0x33, 0x39, 0x1d, 0x4b, 0x18, + 0x26, 0x69, 0xcb, 0x8c, 0xf5, 0x17, 0x80, 0xb2, 0x81, 0xca, 0x82, 0x2c, 0xce, 0x0f, 0xe5, 0xee, + 0xf3, 0xe3, 0x21, 0xd4, 0x07, 0xf3, 0x8b, 0x78, 0x18, 0x79, 0x17, 0xb4, 0xcb, 0xfc, 0xa1, 0xf1, + 0x81, 0x06, 0x2c, 0x4e, 0x77, 0xe9, 0xff, 0x54, 0x28, 0x2c, 0x50, 0x74, 0x00, 0x55, 0x2f, 0x18, + 0x86, 0xd3, 0x34, 0xe8, 0x80, 0xfa, 0x3c, 0xee, 0xa4, 0xe3, 0xec, 0xa6, 0xa6, 0x76, 0x62, 0x31, + 0x47, 0x9c, 0xbf, 0x92, 0xa4, 0xe4, 0x6f, 0x24, 0xfc, 0x6c, 0x8e, 0x09, 0xbf, 0x09, 0xda, 0xc2, + 0x3f, 0x3f, 0xe6, 0x17, 0x45, 0xc1, 0x95, 0x14, 0xe7, 0xc1, 0x24, 0xcc, 0x85, 0xe7, 0x94, 0xa9, + 0x26, 0xcc, 0x14, 0x97, 0xcc, 0x2f, 0xa1, 0xc4, 0xf7, 0x43, 0xcc, 0xdc, 0xe9, 0x8c, 0x04, 0xb1, + 0xd8, 0x17, 0x2a, 0x2e, 0x2e, 0x30, 0x2b, 0x46, 0xdf, 0x01, 0x50, 0x9e, 0x1f, 0x61, 0xd7, 0x33, + 0x2a, 0xb6, 0x44, 0xe5, 0xe8, 0xf3, 0x8c, 0x30, 0x16, 0x05, 0x38, 0x10, 0xff, 0x3a, 0xd7, 0x33, + 0x8a, 0x0b, 0x34, 0xfd, 0x89, 0xbe, 0x87, 0xf2, 0x38, 0x8c, 0x3e, 0xba, 0xd1, 0x88, 0x08, 0x50, + 0x1e, 0x1b, 0xd9, 0x3e, 0x78, 0x92, 0xd8, 0xc5, 0xf0, 0xee, 0x3d, 0x5c, 0x1a, 0x67, 0xbe, 0xd1, + 0x2b, 0x40, 0xe9, 0x78, 0xb1, 0xcb, 0x13, 0x27, 0x79, 0xe1, 0x64, 0xff, 0xb6, 0x13, 0x7e, 0x48, + 0xa7, 0x8e, 0xb4, 0xf1, 0x0d, 0x0c, 0xfd, 0x01, 0x4a, 0x31, 0x65, 0xcc, 0xa7, 0xd2, 0x4d, 0x41, + 0xb8, 0xd9, 0x5b, 0xb9, 0xe3, 0x70, 0x73, 0xea, 0xa1, 0x18, 0x2f, 0x3f, 0xd1, 0x31, 0xec, 0xf8, + 0x5e, 0x70, 0x95, 0x0d, 0x03, 0xc4, 0xf8, 0x5a, 0x66, 0x7c, 0xcf, 0x0b, 0xae, 0xb2, 0x31, 0x94, + 0xfd, 0x2c, 0xa0, 0xff, 0x11, 0x0a, 0x8b, 0x2a, 0xa1, 0x22, 0x6c, 0x9f, 0x5b, 0xaf, 0x2c, 0xfb, + 0x8d, 0xa5, 0xdd, 0x43, 0x79, 0x50, 0x07, 0x86, 0xd5, 0xd1, 0x14, 0x0e, 0x63, 0xa3, 0x6d, 0x98, + 0xaf, 0x0d, 0x6d, 0x83, 0x7f, 0x9c, 0xd8, 0xf8, 0x4d, 0x0b, 0x77, 0xb4, 0xcd, 0xe3, 0x6d, 0xc8, + 0x89, 0x79, 0xf5, 0x7f, 0x2b, 0x90, 0x17, 0x2b, 0x18, 0x8c, 0x43, 0xf4, 0x2b, 0x58, 0x88, 0x4b, + 0x1c, 0x6e, 0xbc, 0xe1, 0x0a, 0xd5, 0x95, 0xf1, 0x42, 0x30, 0x8e, 0xc4, 0x39, 0x79, 0x21, 0x8d, + 0x05, 0x79, 0x23, 0x21, 0xa7, 0x86, 0x05, 0xf9, 0x69, 0xc6, 0xf3, 0xca, 0x91, 0xa3, 0xe2, 0x9d, + 0xd4, 0x90, 0x9e, 0xb0, 0x4f, 0x33, 0x8e, 0x57, 0x4e, 0x62, 0x15, 0xef, 0xa4, 0x06, 0xc9, 0xd5, + 0x7f, 0x07, 0xa5, 0xec, 0x9a, 0xa3, 0x27, 0xa0, 0x7a, 0xc1, 0x38, 0x94, 0x1b, 0xb1, 0x7a, 0x43, + 0x5c, 0x3c, 0x49, 0x2c, 0x08, 0x3a, 0x02, 0xed, 0xe6, 0x3a, 0xeb, 0x65, 0x28, 0x66, 0x16, 0x4d, + 0xff, 0x8f, 0x02, 0xe5, 0x95, 0x45, 0xf8, 0xd9, 0xde, 0xd1, 0x77, 0x50, 0xfa, 0xe8, 0x45, 0x94, + 0x64, 0xdb, 0x7f, 0xe5, 0xa8, 0xbe, 0xda, 0xfe, 0xd3, 0xff, 0xdb, 0xe1, 0x88, 0xe2, 0x22, 0xe7, + 0x4b, 0x00, 0xfd, 0x09, 0x2a, 0x72, 0x24, 0x19, 0x51, 0xe6, 0x7a, 0xbe, 0x28, 0x55, 0x65, 0x45, + 0x1e, 0x92, 0xdb, 0x11, 0x76, 0x5c, 0x1e, 0x67, 0x3f, 0xd1, 0xd7, 0x4b, 0x07, 0x31, 0x8b, 0xbc, + 0xe0, 0x52, 0xd4, 0xaf, 0xb0, 0xa0, 0x0d, 0x04, 0xf8, 0xf4, 0x5f, 0x0a, 0x94, 0xb2, 0x57, 0x47, + 0x54, 0x86, 0x82, 0x69, 0x91, 0x93, 0x9e, 0xf9, 0xb2, 0xeb, 0x68, 0xf7, 0xf8, 0xe7, 0xe0, 0xbc, + 0xdd, 0x36, 0x8c, 0x8e, 0xc1, 0xe5, 0x84, 0xa0, 0x72, 0xd2, 0x32, 0x7b, 0x46, 0x87, 0x38, 0xe6, + 0x99, 0x61, 0x9f, 0x3b, 0xda, 0x06, 0xaa, 0xc2, 0x8e, 0xc4, 0x2c, 0x9b, 0x60, 0xfb, 0xdc, 0x31, + 0xb4, 0x4d, 0xa4, 0x41, 0x49, 0x82, 0x06, 0xc6, 0x36, 0xd6, 0x54, 0xf4, 0x15, 0x34, 0x24, 0x62, + 0x5a, 0x6d, 0x1b, 0x63, 0xa3, 0xed, 0x90, 0x7e, 0xeb, 0xdd, 0x99, 0x61, 0x39, 0xa4, 0x63, 0x38, + 0x2d, 0xb3, 0x37, 0xd0, 0x72, 0xe8, 0x0b, 0xd8, 0x5f, 0xb0, 0x06, 0xe7, 0x27, 0x27, 0x66, 0xdb, + 0xe4, 0x84, 0xe3, 0x56, 0xaf, 0x65, 0xb5, 0x0d, 0x6d, 0xeb, 0xe9, 0xdf, 0x54, 0x28, 0xaf, 0x24, + 0xbe, 0xaa, 0xfc, 0x32, 0x14, 0x2c, 0x5b, 0xfa, 0xd3, 0x14, 0x1e, 0x86, 0x6d, 0x99, 0xb6, 0x45, + 0x3a, 0x46, 0xdb, 0xee, 0xf0, 0x3d, 0xf0, 0x19, 0xec, 0xf6, 0x4c, 0xeb, 0x15, 0xb1, 0x6c, 0x87, + 0x18, 0x3d, 0xf3, 0xa5, 0x79, 0xdc, 0xe3, 0xf1, 0xde, 0x07, 0xcd, 0xb6, 0x48, 0xbb, 0xdb, 0x32, + 0xad, 0x45, 0x6a, 0x2a, 0x47, 0xf9, 0x85, 0x98, 0x18, 0x6f, 0x79, 0x05, 0x06, 0xe4, 0xac, 0xf5, + 0x56, 0xcb, 0xa1, 0x1a, 0xdc, 0x5f, 0x1f, 0x1c, 0xda, 0x03, 0xc4, 0x93, 0x3b, 0xeb, 0xf7, 0x0c, + 0xc7, 0x20, 0xe9, 0x5e, 0xdb, 0xe6, 0x25, 0x12, 0x7e, 0x5a, 0x9d, 0x0e, 0x49, 0xd2, 0xd3, 0xf2, + 0x3c, 0x12, 0xc9, 0x18, 0x90, 0x8e, 0x39, 0x68, 0x1d, 0x73, 0xb8, 0xc0, 0xe7, 0x34, 0xad, 0xd7, + 0xb6, 0xd9, 0x36, 0x48, 0x9b, 0xbb, 0xe5, 0x28, 0x70, 0x72, 0x8a, 0x9e, 0x5b, 0x1d, 0x03, 0xf7, + 0x5b, 0x66, 0x47, 0x2b, 0xa2, 0x7d, 0x78, 0x90, 0xc2, 0xc6, 0xdb, 0xbe, 0x89, 0xdf, 0x11, 0xc7, + 0xb6, 0xc9, 0xc0, 0xb6, 0x2d, 0xad, 0x94, 0xf5, 0xc4, 0xb3, 0xb5, 0xfb, 0x86, 0xa5, 0x95, 0xd1, + 0x03, 0xa8, 0x9e, 0xf5, 0xfb, 0x24, 0xb5, 0xa4, 0xc9, 0x56, 0x38, 0xbd, 0xd5, 0xe9, 0x60, 0x63, + 0x30, 0x20, 0x67, 0xe6, 0xe0, 0xac, 0xe5, 0xb4, 0xbb, 0xda, 0x0e, 0x4f, 0x69, 0x60, 0x38, 0xc4, + 0xb1, 0x9d, 0x56, 0x6f, 0x89, 0x6b, 0x3c, 0xa0, 0x25, 0xce, 0x27, 0xed, 0xd9, 0x6f, 0xb4, 0x5d, + 0x5e, 0x70, 0x0e, 0xdb, 0xaf, 0x65, 0x88, 0x88, 0xe7, 0x2e, 0x97, 0x27, 0x9d, 0x53, 0xab, 0x72, + 0xd0, 0xb4, 0x5e, 0xb7, 0x7a, 0x66, 0x87, 0xbc, 0x32, 0xde, 0x89, 0xb3, 0xea, 0x3e, 0x07, 0x93, + 0xc8, 0x48, 0x1f, 0xdb, 0x2f, 0x79, 0x20, 0xda, 0x67, 0x5c, 0x71, 0x6d, 0x13, 0xb7, 0xcf, 0x7b, + 0x2d, 0x2c, 0xc5, 0xb5, 0x77, 0xf4, 0xf7, 0x2d, 0xd8, 0x12, 0x9d, 0x35, 0x42, 0x5d, 0xbe, 0x61, + 0x17, 0x2f, 0x49, 0xf4, 0xe8, 0x93, 0x2f, 0xcc, 0x7a, 0x6d, 0xfd, 0x83, 0x69, 0x1e, 0x3f, 0x57, + 0xd0, 0x29, 0x94, 0xb2, 0xef, 0x34, 0x94, 0x6d, 0x4b, 0x6b, 0x1e, 0x70, 0x9f, 0xf4, 0xf5, 0x0a, + 0x34, 0x23, 0x66, 0xde, 0x94, 0xbf, 0xc5, 0xe4, 0xa3, 0x07, 0xd5, 0x33, 0xfc, 0x1b, 0x2f, 0xa9, + 0xfa, 0xfe, 0x5a, 0x9b, 0xbc, 0x5a, 0xf4, 0x92, 0x14, 0xe5, 0xb3, 0xe3, 0x56, 0x8a, 0xab, 0x6f, + 0x9d, 0xfa, 0xe7, 0x77, 0x99, 0xa5, 0xb7, 0x11, 0x54, 0xd7, 0xbc, 0x24, 0xd0, 0xd7, 0xd9, 0x08, + 0xee, 0x7c, 0x87, 0xd4, 0x1f, 0xff, 0x14, 0x6d, 0x39, 0xcb, 0x9a, 0x27, 0xc7, 0xca, 0x2c, 0x77, + 0x3f, 0x58, 0x56, 0x66, 0xf9, 0xd4, 0xcb, 0xe5, 0x3d, 0x68, 0x37, 0x6f, 0xa8, 0x48, 0xbf, 0x39, + 0xf6, 0xf6, 0x55, 0xb9, 0xfe, 0xcb, 0x4f, 0x72, 0xa4, 0x73, 0x13, 0x60, 0x79, 0xcf, 0x43, 0x0f, + 0x33, 0x43, 0x6e, 0xdd, 0x53, 0xeb, 0x8f, 0xee, 0xb0, 0x4a, 0x57, 0x0e, 0x54, 0xd7, 0x5c, 0xfc, + 0x56, 0xaa, 0x71, 0xf7, 0xc5, 0xb0, 0x7e, 0x7f, 0xdd, 0xfd, 0xe8, 0xb9, 0x72, 0xfc, 0xed, 0x9f, + 0x0f, 0x2f, 0x3d, 0x36, 0x99, 0x5f, 0x1c, 0x0c, 0xc3, 0xe9, 0xa1, 0xef, 0x5d, 0x4e, 0x58, 0xe0, + 0x05, 0x97, 0x01, 0x65, 0x1f, 0xc3, 0xe8, 0xea, 0xd0, 0x0f, 0x46, 0x87, 0xa2, 0xd9, 0x1c, 0x2e, + 0x86, 0x5f, 0x6c, 0x89, 0xbf, 0xc6, 0xfd, 0xfa, 0xc7, 0x00, 0x00, 0x00, 0xff, 0xff, 0xaf, 0x84, + 0xd2, 0x59, 0xbd, 0x13, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/lnrpc/routerrpc/router.proto b/lnrpc/routerrpc/router.proto index 7a63f86aea..4ff1135d9c 100644 --- a/lnrpc/routerrpc/router.proto +++ b/lnrpc/routerrpc/router.proto @@ -169,13 +169,10 @@ message PaymentStatus { */ bytes preimage = 2; - /** - The taken route when state is SUCCEEDED. - */ - lnrpc.Route route = 3; + reserved 3; /** - The HTLCs made in attempt to settle the payment [EXPERIMENTAL]. + The HTLCs made in attempt to settle the payment. */ repeated lnrpc.HTLCAttempt htlcs = 4; } diff --git a/lnrpc/routerrpc/router_backend.go b/lnrpc/routerrpc/router_backend.go index 259f78f7c4..6465c26863 100644 --- a/lnrpc/routerrpc/router_backend.go +++ b/lnrpc/routerrpc/router_backend.go @@ -650,6 +650,7 @@ func (r *RouterBackend) extractIntentFromSendRequest( ) payIntent.DestFeatures = payReq.Features payIntent.PaymentAddr = payReq.PaymentAddr + payIntent.PaymentRequest = []byte(rpcPayReq.PaymentRequest) } else { // Otherwise, If the payment request field was not specified // (and a custom route wasn't specified), construct the payment diff --git a/lnrpc/routerrpc/router_server.go b/lnrpc/routerrpc/router_server.go index 17434699a8..80e4ebf450 100644 --- a/lnrpc/routerrpc/router_server.go +++ b/lnrpc/routerrpc/router_server.go @@ -1,5 +1,3 @@ -// +build routerrpc - package routerrpc import ( @@ -487,35 +485,6 @@ func (s *Server) trackPayment(paymentHash lntypes.Hash, status.State = state } - // Extract the last route from the given list of HTLCs. This - // will populate the legacy route field for backwards - // compatibility. - // - // NOTE: For now there will be at most one HTLC, this code - // should be revisted or the field removed when multiple HTLCs - // are permitted. - var legacyRoute *route.Route - for _, htlc := range result.HTLCs { - switch { - case htlc.Settle != nil: - legacyRoute = &htlc.Route - - // Only display the route for failed payments if we got - // an incorrect payment details error, so that it can be - // used for probing or fee estimation. - case htlc.Failure != nil && result.FailureReason == - channeldb.FailureReasonPaymentDetails: - - legacyRoute = &htlc.Route - } - } - if legacyRoute != nil { - status.Route, err = router.MarshallRoute(legacyRoute) - if err != nil { - return err - } - } - // Marshal our list of HTLCs that have been tried for this // payment. htlcs := make([]*lnrpc.HTLCAttempt, 0, len(result.HTLCs)) diff --git a/lnrpc/routerrpc/routing_config.go b/lnrpc/routerrpc/routing_config.go new file mode 100644 index 0000000000..98b3594cf3 --- /dev/null +++ b/lnrpc/routerrpc/routing_config.go @@ -0,0 +1,40 @@ +package routerrpc + +import ( + "time" + + "github.com/btcsuite/btcutil" +) + +// RoutingConfig contains the configurable parameters that control routing. +type RoutingConfig struct { + // MinRouteProbability is the minimum required route success probability + // to attempt the payment. + MinRouteProbability float64 `long:"minrtprob" description:"Minimum required route success probability to attempt the payment"` + + // AprioriHopProbability is the assumed success probability of a hop in + // a route when no other information is available. + AprioriHopProbability float64 `long:"apriorihopprob" description:"Assumed success probability of a hop in a route when no other information is available."` + + // AprioriWeight is a value in the range [0, 1] that defines to what + // extent historical results should be extrapolated to untried + // connections. Setting it to one will completely ignore historical + // results and always assume the configured a priori probability for + // untried connections. A value of zero will ignore the a priori + // probability completely and only base the probability on historical + // results, unless there are none available. + AprioriWeight float64 `long:"aprioriweight" description:"Weight of the a priori probability in success probability estimation. Valid values are in [0, 1]."` + + // PenaltyHalfLife defines after how much time a penalized node or + // channel is back at 50% probability. + PenaltyHalfLife time.Duration `long:"penaltyhalflife" description:"Defines the duration after which a penalized node or channel is back at 50% probability"` + + // AttemptCost is the virtual cost in path finding weight units of + // executing a payment attempt that fails. It is used to trade off + // potentially better routes against their probability of succeeding. + AttemptCost btcutil.Amount `long:"attemptcost" description:"The (virtual) cost in sats of a failed payment attempt"` + + // MaxMcHistory defines the maximum number of payment results that + // are held on disk by mission control. + MaxMcHistory int `long:"maxmchistory" description:"the maximum number of payment results that are held on disk by mission control"` +} diff --git a/lnrpc/routerrpc/subscribe_events.go b/lnrpc/routerrpc/subscribe_events.go index ce65a6c8a5..4454dbda2f 100644 --- a/lnrpc/routerrpc/subscribe_events.go +++ b/lnrpc/routerrpc/subscribe_events.go @@ -1,5 +1,3 @@ -// +build routerrpc - package routerrpc import ( diff --git a/lnrpc/rpc.pb.go b/lnrpc/rpc.pb.go index 2f7826cc08..77325c1c37 100644 --- a/lnrpc/rpc.pb.go +++ b/lnrpc/rpc.pb.go @@ -11878,749 +11878,749 @@ func init() { func init() { proto.RegisterFile("rpc.proto", fileDescriptor_77a6da22d6a3feb1) } var fileDescriptor_77a6da22d6a3feb1 = []byte{ - // 11862 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x7d, 0x6b, 0x6f, 0x24, 0x49, - 0x72, 0xd8, 0xf4, 0x8b, 0xdd, 0x1d, 0xfd, 0x60, 0x33, 0xf9, 0xea, 0xe1, 0xcc, 0xec, 0xcc, 0xd6, - 0xee, 0xed, 0xce, 0xce, 0xde, 0x71, 0x66, 0xe7, 0x6e, 0xf6, 0xee, 0x76, 0xad, 0xd3, 0x35, 0xc9, - 0xe6, 0xb0, 0x6f, 0xf8, 0xda, 0xea, 0xe6, 0xae, 0xe6, 0xf4, 0xa8, 0x2b, 0x76, 0x27, 0xc9, 0xd2, - 0x74, 0x57, 0xf5, 0x56, 0x55, 0xf3, 0x71, 0x87, 0xf5, 0x07, 0xc3, 0x16, 0x0c, 0xc3, 0x0f, 0x08, - 0xb6, 0x0c, 0x58, 0xb6, 0x60, 0xc3, 0x82, 0x61, 0x18, 0x06, 0x04, 0x01, 0x27, 0x7f, 0x30, 0xe0, - 0xef, 0x82, 0x01, 0x1b, 0x86, 0x21, 0xf9, 0x8b, 0x21, 0x08, 0x30, 0x6c, 0xcb, 0x1f, 0x0c, 0x18, - 0x02, 0xfc, 0x07, 0x8c, 0x8c, 0xc8, 0xac, 0xca, 0xea, 0x2e, 0xce, 0xcc, 0xde, 0xad, 0xef, 0x0b, - 0xd9, 0x15, 0x19, 0xf9, 0x8e, 0x8c, 0x8c, 0xc8, 0x88, 0xc8, 0x84, 0xb2, 0x3f, 0xee, 0xaf, 0x8f, - 0x7d, 0x2f, 0xf4, 0x58, 0x61, 0xe8, 0xfa, 0xe3, 0xfe, 0xda, 0xed, 0x53, 0xcf, 0x3b, 0x1d, 0xf2, - 0x87, 0xf6, 0xd8, 0x79, 0x68, 0xbb, 0xae, 0x17, 0xda, 0xa1, 0xe3, 0xb9, 0x01, 0x21, 0x19, 0x3f, - 0x82, 0xfa, 0x53, 0xee, 0x76, 0x39, 0x1f, 0x98, 0xfc, 0xf3, 0x09, 0x0f, 0x42, 0xf6, 0x3e, 0x2c, - 0xd8, 0xfc, 0xc7, 0x9c, 0x0f, 0xac, 0xb1, 0x1d, 0x04, 0xe3, 0x33, 0xdf, 0x0e, 0x78, 0x33, 0x73, - 0x2f, 0x73, 0xbf, 0x6a, 0x36, 0x28, 0xe1, 0x30, 0x82, 0xb3, 0x37, 0xa1, 0x1a, 0x08, 0x54, 0xee, - 0x86, 0xbe, 0x37, 0xbe, 0x6a, 0x66, 0x11, 0xaf, 0x22, 0x60, 0x6d, 0x02, 0x19, 0x43, 0x98, 0x8f, - 0x6a, 0x08, 0xc6, 0x9e, 0x1b, 0x70, 0xf6, 0x08, 0x96, 0xfa, 0xce, 0xf8, 0x8c, 0xfb, 0x16, 0x66, - 0x1e, 0xb9, 0x7c, 0xe4, 0xb9, 0x4e, 0xbf, 0x99, 0xb9, 0x97, 0xbb, 0x5f, 0x36, 0x19, 0xa5, 0x89, - 0x1c, 0x7b, 0x32, 0x85, 0xbd, 0x0b, 0xf3, 0xdc, 0x25, 0x38, 0x1f, 0x60, 0x2e, 0x59, 0x55, 0x3d, - 0x06, 0x8b, 0x0c, 0xc6, 0xdf, 0xcc, 0xc2, 0x42, 0xc7, 0x75, 0xc2, 0xcf, 0xec, 0xe1, 0x90, 0x87, - 0xaa, 0x4f, 0xef, 0xc2, 0xfc, 0x05, 0x02, 0xb0, 0x4f, 0x17, 0x9e, 0x3f, 0x90, 0x3d, 0xaa, 0x13, - 0xf8, 0x50, 0x42, 0xaf, 0x6d, 0x59, 0xf6, 0xda, 0x96, 0xa5, 0x0e, 0x57, 0xee, 0x9a, 0xe1, 0x7a, - 0x17, 0xe6, 0x7d, 0xde, 0xf7, 0xce, 0xb9, 0x7f, 0x65, 0x5d, 0x38, 0xee, 0xc0, 0xbb, 0x68, 0xe6, - 0xef, 0x65, 0xee, 0x17, 0xcc, 0xba, 0x02, 0x7f, 0x86, 0x50, 0xb6, 0x01, 0xf3, 0xfd, 0x33, 0xdb, - 0x75, 0xf9, 0xd0, 0x3a, 0xb6, 0xfb, 0x2f, 0x26, 0xe3, 0xa0, 0x59, 0xb8, 0x97, 0xb9, 0x5f, 0x79, - 0x7c, 0x73, 0x1d, 0x67, 0x75, 0x7d, 0xf3, 0xcc, 0x76, 0x37, 0x30, 0xa5, 0xeb, 0xda, 0xe3, 0xe0, - 0xcc, 0x0b, 0xcd, 0xba, 0xcc, 0x41, 0xe0, 0xc0, 0x58, 0x02, 0xa6, 0x8f, 0x04, 0x8d, 0xbd, 0xf1, - 0xaf, 0x33, 0xb0, 0x78, 0xe4, 0x0e, 0xbd, 0xfe, 0x8b, 0x9f, 0x71, 0x88, 0x52, 0xfa, 0x90, 0x7d, - 0xdd, 0x3e, 0xe4, 0xbe, 0x6c, 0x1f, 0x56, 0x60, 0x29, 0xd9, 0x58, 0xd9, 0x0b, 0x0e, 0xcb, 0x22, - 0xf7, 0x29, 0x57, 0xcd, 0x52, 0xdd, 0x78, 0x0f, 0x1a, 0xfd, 0x89, 0xef, 0x73, 0x77, 0xa6, 0x1f, - 0xf3, 0x12, 0x1e, 0x75, 0xe4, 0x4d, 0xa8, 0xba, 0xfc, 0x22, 0x46, 0x93, 0xb4, 0xeb, 0xf2, 0x0b, - 0x85, 0x62, 0x34, 0x61, 0x65, 0xba, 0x1a, 0xd9, 0x80, 0xbf, 0xc8, 0x40, 0xfe, 0x28, 0xbc, 0xf4, - 0xd8, 0x13, 0xa8, 0xda, 0x83, 0x81, 0xcf, 0x83, 0xc0, 0x0a, 0xaf, 0xc6, 0xb4, 0x52, 0xea, 0x8f, - 0x99, 0xec, 0x62, 0x8b, 0x92, 0x7a, 0x57, 0x63, 0x6e, 0x56, 0xec, 0xf8, 0x83, 0x35, 0xa1, 0x28, - 0x3f, 0xb1, 0xde, 0xb2, 0xa9, 0x3e, 0xd9, 0x1d, 0x00, 0x7b, 0xe4, 0x4d, 0xdc, 0xd0, 0x0a, 0xec, - 0x10, 0x47, 0x2c, 0x67, 0x96, 0x09, 0xd2, 0xb5, 0x43, 0x76, 0x0b, 0xca, 0xe3, 0x17, 0x56, 0xd0, - 0xf7, 0x9d, 0x71, 0x88, 0xc4, 0x53, 0x36, 0x4b, 0xe3, 0x17, 0x5d, 0xfc, 0x66, 0xef, 0x43, 0xc9, - 0x9b, 0x84, 0x63, 0xcf, 0x71, 0x43, 0x49, 0x2f, 0xf3, 0xb2, 0x21, 0x07, 0x93, 0xf0, 0x50, 0x80, - 0xcd, 0x08, 0x81, 0xbd, 0x0d, 0xb5, 0xbe, 0xe7, 0x9e, 0x38, 0xfe, 0x88, 0x38, 0x42, 0x73, 0x0e, - 0xeb, 0x4a, 0x02, 0x8d, 0x3f, 0xcc, 0x42, 0xa5, 0xe7, 0xdb, 0x6e, 0x60, 0xf7, 0x05, 0x80, 0xad, - 0x42, 0x31, 0xbc, 0xb4, 0xce, 0xec, 0xe0, 0x0c, 0xbb, 0x5a, 0x36, 0xe7, 0xc2, 0xcb, 0x1d, 0x3b, - 0x38, 0x63, 0x2b, 0x30, 0x47, 0xad, 0xc4, 0x0e, 0xe5, 0x4c, 0xf9, 0x25, 0x16, 0x88, 0x3b, 0x19, - 0x59, 0xc9, 0xaa, 0x72, 0x48, 0x31, 0x0d, 0x77, 0x32, 0xda, 0xd4, 0xe1, 0xa2, 0xf3, 0xc7, 0x62, - 0xba, 0xa9, 0x02, 0xea, 0x5e, 0x19, 0x21, 0x58, 0xc7, 0x9b, 0x50, 0x95, 0xc9, 0xdc, 0x39, 0x3d, - 0xa3, 0x3e, 0x16, 0xcc, 0x0a, 0x21, 0x20, 0x48, 0x94, 0x10, 0x3a, 0x23, 0x6e, 0x05, 0xa1, 0x3d, - 0x1a, 0xcb, 0x2e, 0x95, 0x05, 0xa4, 0x2b, 0x00, 0x98, 0xec, 0x85, 0xf6, 0xd0, 0x3a, 0xe1, 0x3c, - 0x68, 0x16, 0x65, 0xb2, 0x80, 0x6c, 0x73, 0x1e, 0xb0, 0xaf, 0x41, 0x7d, 0xc0, 0x83, 0xd0, 0x92, - 0x93, 0xc1, 0x83, 0x66, 0x09, 0x57, 0x7e, 0x4d, 0x40, 0x5b, 0x0a, 0xc8, 0x6e, 0x03, 0xf8, 0xf6, - 0x85, 0x25, 0x06, 0x82, 0x5f, 0x36, 0xcb, 0x34, 0x0b, 0xbe, 0x7d, 0xd1, 0xbb, 0xdc, 0xe1, 0x97, - 0x82, 0x6a, 0x9e, 0xf2, 0x50, 0x1b, 0xb4, 0x40, 0x52, 0xa7, 0xb1, 0x0b, 0x4c, 0x03, 0x6f, 0xf1, - 0xd0, 0x76, 0x86, 0x01, 0xfb, 0x10, 0xaa, 0xa1, 0x86, 0x8c, 0x6c, 0xb0, 0x12, 0x91, 0x90, 0x96, - 0xc1, 0x4c, 0xe0, 0x19, 0x67, 0x50, 0xda, 0xe6, 0x7c, 0xd7, 0x19, 0x39, 0x21, 0x5b, 0x81, 0xc2, - 0x89, 0x73, 0xc9, 0x89, 0xd8, 0x73, 0x3b, 0x37, 0x4c, 0xfa, 0x64, 0x77, 0x01, 0xf0, 0x87, 0x35, - 0x8a, 0xa8, 0x69, 0xe7, 0x86, 0x59, 0x46, 0xd8, 0x5e, 0x60, 0x87, 0x6c, 0x0d, 0x8a, 0x63, 0xee, - 0xf7, 0xb9, 0x9a, 0xb7, 0x9d, 0x1b, 0xa6, 0x02, 0x6c, 0x14, 0xa1, 0x30, 0x14, 0xa5, 0x1b, 0x7f, - 0x5c, 0x80, 0x4a, 0x97, 0xbb, 0xd1, 0x2a, 0x63, 0x90, 0x17, 0x03, 0x22, 0x57, 0x16, 0xfe, 0x66, - 0x6f, 0x41, 0x05, 0x87, 0x2e, 0x08, 0x7d, 0xc7, 0x3d, 0x25, 0xaa, 0xde, 0xc8, 0x36, 0x33, 0x26, - 0x08, 0x70, 0x17, 0xa1, 0xac, 0x01, 0x39, 0x7b, 0xa4, 0xa8, 0x5a, 0xfc, 0x64, 0x37, 0xa1, 0x64, - 0x8f, 0x42, 0x6a, 0x5e, 0x15, 0xc1, 0x45, 0x7b, 0x14, 0x62, 0xd3, 0xde, 0x84, 0xea, 0xd8, 0xbe, - 0x1a, 0x89, 0xb5, 0x1c, 0x91, 0x43, 0xd5, 0xac, 0x48, 0x18, 0x12, 0xc4, 0x63, 0x58, 0xd4, 0x51, - 0x54, 0xe5, 0x85, 0xa8, 0xf2, 0x05, 0x0d, 0x5b, 0xb6, 0xe1, 0x5d, 0x98, 0x57, 0x79, 0x7c, 0xea, - 0x0f, 0x92, 0x49, 0xd9, 0xac, 0x4b, 0xb0, 0xea, 0xe5, 0x7d, 0x68, 0x9c, 0x38, 0xae, 0x3d, 0xb4, - 0xfa, 0xc3, 0xf0, 0xdc, 0x1a, 0xf0, 0x61, 0x68, 0x23, 0xc5, 0x14, 0xcc, 0x3a, 0xc2, 0x37, 0x87, - 0xe1, 0xf9, 0x96, 0x80, 0xb2, 0xaf, 0x43, 0xf9, 0x84, 0x73, 0x0b, 0x07, 0xab, 0x59, 0x4a, 0x2c, - 0x3c, 0x35, 0x43, 0x66, 0xe9, 0x44, 0xcd, 0xd5, 0xd7, 0xa1, 0xe1, 0x4d, 0xc2, 0x53, 0xcf, 0x71, - 0x4f, 0x2d, 0xc1, 0xef, 0x2c, 0x67, 0x80, 0x34, 0x94, 0xdf, 0xc8, 0x3e, 0xca, 0x98, 0x75, 0x95, - 0x26, 0x38, 0x4f, 0x67, 0xc0, 0xde, 0x81, 0xf9, 0xa1, 0x1d, 0x84, 0xd6, 0x99, 0x37, 0xb6, 0xc6, - 0x93, 0xe3, 0x17, 0xfc, 0xaa, 0x59, 0xc3, 0x81, 0xa8, 0x09, 0xf0, 0x8e, 0x37, 0x3e, 0x44, 0xa0, - 0xa0, 0x6c, 0x6c, 0x27, 0x35, 0x02, 0xee, 0x65, 0xee, 0xd7, 0xcc, 0xb2, 0x80, 0x50, 0xa5, 0xcf, - 0x61, 0x11, 0xa7, 0xa7, 0x3f, 0x09, 0x42, 0x6f, 0x64, 0x09, 0x5e, 0xed, 0x0f, 0x82, 0x66, 0x05, - 0x69, 0xed, 0x3d, 0xd9, 0x58, 0x6d, 0x8e, 0xd7, 0xb7, 0x78, 0x10, 0x6e, 0x22, 0xb2, 0x49, 0xb8, - 0x62, 0x43, 0xbf, 0x32, 0x17, 0x06, 0xd3, 0x70, 0xf6, 0x75, 0x60, 0xf6, 0x70, 0xe8, 0x5d, 0x58, - 0x01, 0x1f, 0x9e, 0x58, 0x72, 0x10, 0x9b, 0xf5, 0x7b, 0x99, 0xfb, 0x25, 0xb3, 0x81, 0x29, 0x5d, - 0x3e, 0x3c, 0x39, 0x24, 0x38, 0xfb, 0x10, 0x70, 0x31, 0x59, 0x27, 0xdc, 0x0e, 0x27, 0x3e, 0x0f, - 0x9a, 0xf3, 0xf7, 0x72, 0xf7, 0xeb, 0x8f, 0x17, 0xa2, 0xf1, 0x42, 0xf0, 0x86, 0x13, 0x9a, 0x55, - 0x81, 0x27, 0xbf, 0x83, 0xb5, 0x2d, 0x58, 0x49, 0x6f, 0x92, 0x20, 0x2a, 0x31, 0x2a, 0x82, 0x18, - 0xf3, 0xa6, 0xf8, 0xc9, 0x96, 0xa0, 0x70, 0x6e, 0x0f, 0x27, 0x5c, 0xf2, 0x74, 0xfa, 0xf8, 0x28, - 0xfb, 0x9d, 0x8c, 0xf1, 0x47, 0x19, 0xa8, 0x52, 0x2f, 0xa5, 0x2c, 0xf2, 0x16, 0xd4, 0x14, 0x35, - 0x70, 0xdf, 0xf7, 0x7c, 0xc9, 0xd5, 0x14, 0xe5, 0xb5, 0x05, 0x4c, 0xec, 0x2a, 0x0a, 0x69, 0xec, - 0x73, 0x67, 0x64, 0x9f, 0xaa, 0xa2, 0x15, 0x29, 0x1d, 0x4a, 0x30, 0xfb, 0x20, 0x2e, 0xcf, 0xf7, - 0x26, 0x21, 0x97, 0x7b, 0x5e, 0x55, 0x76, 0xcf, 0x14, 0xb0, 0xa8, 0x74, 0xfc, 0x7a, 0x0d, 0x3a, - 0x37, 0x7e, 0x27, 0x03, 0x4c, 0x34, 0xbb, 0xe7, 0x51, 0x01, 0x92, 0x42, 0xa7, 0x73, 0x66, 0x5e, - 0x7b, 0x85, 0x64, 0x5f, 0xb6, 0x42, 0x0c, 0x28, 0x50, 0xdb, 0xf3, 0x29, 0x6d, 0xa7, 0xa4, 0x1f, - 0xe4, 0x4b, 0xb9, 0x46, 0xde, 0xf8, 0xaf, 0x39, 0x58, 0xda, 0xa4, 0x2d, 0xbb, 0xd5, 0xef, 0xf3, - 0x71, 0xb4, 0x76, 0xee, 0x42, 0xc5, 0xf5, 0x06, 0x5c, 0x51, 0x2c, 0x35, 0x0c, 0x04, 0x48, 0x23, - 0xd7, 0x33, 0xdb, 0x71, 0xa9, 0xe1, 0x34, 0x98, 0x65, 0x84, 0x60, 0xb3, 0xdf, 0x81, 0xf9, 0x31, - 0x77, 0x07, 0xfa, 0x12, 0x21, 0xa1, 0xaa, 0x26, 0xc1, 0x72, 0x75, 0xdc, 0x85, 0xca, 0xc9, 0x84, - 0xf0, 0x04, 0x63, 0xc9, 0x23, 0x0d, 0x80, 0x04, 0xb5, 0x88, 0xbf, 0x8c, 0x27, 0xc1, 0x19, 0xa6, - 0x16, 0x30, 0xb5, 0x28, 0xbe, 0x45, 0xd2, 0x1d, 0x80, 0xc1, 0x24, 0x08, 0xe5, 0x8a, 0x99, 0xc3, - 0xc4, 0xb2, 0x80, 0xd0, 0x8a, 0xf9, 0x06, 0x2c, 0x8e, 0xec, 0x4b, 0x0b, 0x69, 0xc7, 0x72, 0x5c, - 0xeb, 0x64, 0x88, 0x7b, 0x4e, 0x11, 0xf1, 0x1a, 0x23, 0xfb, 0xf2, 0x53, 0x91, 0xd2, 0x71, 0xb7, - 0x11, 0x2e, 0xd8, 0x8a, 0x12, 0x77, 0x7c, 0x1e, 0x70, 0xff, 0x9c, 0x23, 0x27, 0xc8, 0x47, 0x32, - 0x8d, 0x49, 0x50, 0xd1, 0xa2, 0x91, 0xe8, 0x77, 0x38, 0xec, 0xd3, 0xb2, 0x37, 0x8b, 0x23, 0xc7, - 0xdd, 0x09, 0x87, 0x7d, 0xb1, 0xaf, 0x08, 0x3e, 0x32, 0xe6, 0xbe, 0xf5, 0xe2, 0x02, 0xd7, 0x70, - 0x1e, 0xf9, 0xc6, 0x21, 0xf7, 0x9f, 0x5d, 0x88, 0xad, 0xbf, 0x1f, 0x20, 0x23, 0xb2, 0xaf, 0x9a, - 0x15, 0x5c, 0xe0, 0xa5, 0x7e, 0x20, 0x58, 0x90, 0x7d, 0x25, 0x16, 0xa1, 0x68, 0xad, 0x8d, 0xb3, - 0xc0, 0x07, 0x58, 0x7c, 0x80, 0x1c, 0xb5, 0x86, 0x8d, 0x6d, 0xc9, 0x04, 0x51, 0x4f, 0x20, 0xa8, - 0x5e, 0x35, 0xf6, 0x64, 0x68, 0x9f, 0x06, 0xc8, 0x52, 0x6a, 0x66, 0x55, 0x02, 0xb7, 0x05, 0xcc, - 0xf8, 0x8c, 0x84, 0x2c, 0x6d, 0x6e, 0xe5, 0x9a, 0x11, 0x5b, 0x3d, 0x42, 0x70, 0x5e, 0x4b, 0xa6, - 0xfc, 0x4a, 0x9b, 0xb4, 0x6c, 0xca, 0xa4, 0x19, 0xbf, 0x97, 0x81, 0xaa, 0x2c, 0x19, 0x85, 0x12, - 0xb6, 0x0e, 0x4c, 0xcd, 0x62, 0x78, 0xe9, 0x0c, 0xac, 0xe3, 0xab, 0x90, 0x07, 0x44, 0x34, 0x3b, - 0x37, 0xcc, 0x86, 0x4c, 0xeb, 0x5d, 0x3a, 0x83, 0x0d, 0x91, 0xc2, 0x1e, 0x40, 0x23, 0x81, 0x1f, - 0x84, 0x3e, 0x51, 0xf4, 0xce, 0x0d, 0xb3, 0xae, 0x61, 0x77, 0x43, 0x5f, 0xac, 0x11, 0x21, 0xf2, - 0x4c, 0x42, 0xcb, 0x71, 0x07, 0xfc, 0x12, 0xc9, 0xa8, 0x66, 0x56, 0x08, 0xd6, 0x11, 0xa0, 0x8d, - 0x3a, 0x54, 0xf5, 0xe2, 0x8c, 0x53, 0x28, 0x29, 0x79, 0x09, 0x05, 0x86, 0xa9, 0x26, 0x99, 0xe5, - 0x30, 0x6a, 0xc9, 0x4d, 0x28, 0x25, 0x5b, 0x60, 0x16, 0xc3, 0xd7, 0xae, 0xd8, 0xf8, 0x1e, 0x34, - 0x76, 0x05, 0xf1, 0xb8, 0x82, 0x58, 0xa5, 0xfc, 0xb7, 0x02, 0x73, 0xda, 0xa2, 0x29, 0x9b, 0xf2, - 0x4b, 0xec, 0xb9, 0x67, 0x5e, 0x10, 0xca, 0x5a, 0xf0, 0xb7, 0xf1, 0xc7, 0x19, 0x60, 0xed, 0x20, - 0x74, 0x46, 0x76, 0xc8, 0xb7, 0x79, 0xc4, 0x16, 0x0e, 0xa0, 0x2a, 0x4a, 0xeb, 0x79, 0x2d, 0x12, - 0xc8, 0x48, 0xa0, 0x78, 0x5f, 0x2e, 0xe3, 0xd9, 0x0c, 0xeb, 0x3a, 0x36, 0xb1, 0xf9, 0x44, 0x01, - 0x62, 0x95, 0x85, 0xb6, 0x7f, 0xca, 0x43, 0x14, 0xe3, 0xa4, 0xbc, 0x0f, 0x04, 0x12, 0x02, 0xdc, - 0xda, 0x2f, 0xc3, 0xc2, 0x4c, 0x19, 0x3a, 0x5f, 0x2e, 0xa7, 0xf0, 0xe5, 0x9c, 0xce, 0x97, 0x2d, - 0x58, 0x4c, 0xb4, 0x4b, 0x52, 0xda, 0x2a, 0x14, 0xc5, 0x82, 0x10, 0xc2, 0x41, 0x86, 0xa4, 0xca, - 0x13, 0xce, 0x85, 0x18, 0xfc, 0x10, 0x96, 0x4e, 0x38, 0xf7, 0xed, 0x10, 0x13, 0x71, 0xc5, 0x88, - 0x19, 0x92, 0x05, 0x2f, 0xc8, 0xb4, 0xae, 0x1d, 0x1e, 0x72, 0x5f, 0xcc, 0x94, 0xf1, 0xdf, 0x33, - 0x30, 0x2f, 0x38, 0xe8, 0x9e, 0xed, 0x5e, 0xa9, 0x71, 0xda, 0x4d, 0x1d, 0xa7, 0xfb, 0xda, 0x66, - 0xa8, 0x61, 0x7f, 0xd9, 0x41, 0xca, 0x4d, 0x0f, 0x12, 0xbb, 0x07, 0xd5, 0x44, 0x5b, 0x0b, 0xd8, - 0x56, 0x08, 0xa2, 0x46, 0xfe, 0xfc, 0xc3, 0xf8, 0x0e, 0x34, 0xe2, 0x66, 0xcb, 0x31, 0x64, 0x90, - 0x17, 0x24, 0x29, 0x0b, 0xc0, 0xdf, 0xc6, 0x3f, 0xc9, 0x10, 0xe2, 0xa6, 0xe7, 0x44, 0xd2, 0xa9, - 0x40, 0x14, 0x72, 0xaf, 0x42, 0x14, 0xbf, 0xaf, 0x95, 0xea, 0x7f, 0xfe, 0xce, 0x8a, 0xa5, 0x13, - 0x70, 0x77, 0x60, 0xd9, 0xc3, 0x21, 0x32, 0xdf, 0x92, 0x59, 0x14, 0xdf, 0xad, 0xe1, 0xd0, 0x78, - 0x17, 0x16, 0xb4, 0xd6, 0xbd, 0xa4, 0x1f, 0xfb, 0xc0, 0x76, 0x9d, 0x20, 0x3c, 0x72, 0x83, 0xb1, - 0x26, 0xb8, 0xdd, 0x82, 0xb2, 0xe0, 0xb0, 0xa2, 0x65, 0xb4, 0x64, 0x0b, 0xa6, 0x60, 0xb9, 0xa2, - 0x5d, 0x01, 0x26, 0xda, 0x97, 0x32, 0x31, 0x2b, 0x13, 0xed, 0x4b, 0x4c, 0x34, 0xbe, 0x03, 0x8b, - 0x89, 0xf2, 0x64, 0xd5, 0x6f, 0x42, 0x61, 0x12, 0x5e, 0x7a, 0x4a, 0x34, 0xaf, 0x48, 0x0a, 0x11, - 0x0a, 0xa0, 0x49, 0x29, 0xc6, 0xc7, 0xb0, 0xb0, 0xcf, 0x2f, 0xe4, 0x22, 0x56, 0x0d, 0x79, 0x07, - 0xf2, 0xaf, 0x50, 0x0a, 0x31, 0xdd, 0x58, 0x07, 0xa6, 0x67, 0x96, 0xb5, 0x6a, 0x3a, 0x62, 0x26, - 0xa1, 0x23, 0x1a, 0xef, 0x00, 0xeb, 0x3a, 0xa7, 0xee, 0x1e, 0x0f, 0x02, 0xfb, 0x34, 0x5a, 0xf6, - 0x0d, 0xc8, 0x8d, 0x82, 0x53, 0xc9, 0xa3, 0xc4, 0x4f, 0xe3, 0x9b, 0xb0, 0x98, 0xc0, 0x93, 0x05, - 0xdf, 0x86, 0x72, 0xe0, 0x9c, 0xba, 0x28, 0x58, 0xc9, 0xa2, 0x63, 0x80, 0xb1, 0x0d, 0x4b, 0x9f, - 0x72, 0xdf, 0x39, 0xb9, 0x7a, 0x55, 0xf1, 0xc9, 0x72, 0xb2, 0xd3, 0xe5, 0xb4, 0x61, 0x79, 0xaa, - 0x1c, 0x59, 0x3d, 0x91, 0xaf, 0x9c, 0xc9, 0x92, 0x49, 0x1f, 0x1a, 0xdf, 0xcb, 0xea, 0x7c, 0xcf, - 0x38, 0x02, 0xb6, 0xe9, 0xb9, 0x2e, 0xef, 0x87, 0x87, 0x9c, 0xfb, 0xf1, 0x29, 0x55, 0x4c, 0xab, - 0x95, 0xc7, 0xab, 0x72, 0x64, 0xa7, 0x99, 0xa9, 0x24, 0x62, 0x06, 0xf9, 0x31, 0xf7, 0x47, 0x58, - 0x70, 0xc9, 0xc4, 0xdf, 0xc6, 0x32, 0x2c, 0x26, 0x8a, 0x95, 0x7a, 0xfd, 0x23, 0x58, 0xde, 0x72, - 0x82, 0xfe, 0x6c, 0x85, 0xab, 0x50, 0x1c, 0x4f, 0x8e, 0xad, 0x24, 0x5f, 0x7e, 0xc6, 0xaf, 0x84, - 0xb6, 0x37, 0x9d, 0x43, 0x96, 0xf5, 0xd7, 0x33, 0x90, 0xdf, 0xe9, 0xed, 0x6e, 0xb2, 0x35, 0x28, - 0x39, 0x6e, 0xdf, 0x1b, 0x09, 0xc1, 0x8b, 0xfa, 0x1c, 0x7d, 0x5f, 0xbb, 0xc0, 0x6e, 0x41, 0x19, - 0xe5, 0x35, 0xa1, 0xda, 0x4a, 0xd1, 0xa7, 0x24, 0x00, 0xbb, 0x5e, 0xff, 0x85, 0xd0, 0xa9, 0xf9, - 0xe5, 0xd8, 0xf1, 0x51, 0x6b, 0x56, 0xca, 0x70, 0x9e, 0xf6, 0xfa, 0x38, 0x81, 0x34, 0x62, 0xe3, - 0xdf, 0x96, 0xa0, 0x28, 0x77, 0x5b, 0xda, 0xb9, 0x43, 0xe7, 0x9c, 0xc7, 0x3b, 0xb7, 0xf8, 0x12, - 0xf2, 0x80, 0xcf, 0x47, 0x5e, 0x18, 0x09, 0x6c, 0x34, 0x07, 0x55, 0x02, 0x4a, 0x91, 0x4d, 0x13, - 0x1a, 0xe8, 0x88, 0x21, 0x47, 0x48, 0x7d, 0x7d, 0x2b, 0xbf, 0x05, 0x45, 0xb5, 0xf7, 0xe7, 0x23, - 0x9d, 0x66, 0xae, 0x4f, 0xd2, 0xda, 0x1a, 0x94, 0xfa, 0xf6, 0xd8, 0xee, 0x3b, 0xe1, 0x95, 0x64, - 0x08, 0xd1, 0xb7, 0x28, 0x7d, 0xe8, 0xf5, 0xed, 0xa1, 0x75, 0x6c, 0x0f, 0x6d, 0xb7, 0xcf, 0xa5, - 0xee, 0x5e, 0x45, 0xe0, 0x06, 0xc1, 0x84, 0x7e, 0x2e, 0xdb, 0xa9, 0xb0, 0x48, 0x85, 0x97, 0xad, - 0x57, 0x68, 0x42, 0xb8, 0xf4, 0x46, 0x23, 0x47, 0x68, 0x19, 0x24, 0x86, 0xe5, 0xcc, 0x32, 0x41, - 0xb6, 0x39, 0xf6, 0x56, 0x26, 0x5f, 0xd0, 0xd0, 0x95, 0xa9, 0x2a, 0x02, 0x7e, 0x46, 0x07, 0x09, - 0xb3, 0xb2, 0x58, 0x4e, 0x93, 0xc5, 0xde, 0x87, 0x85, 0x89, 0x1b, 0xf0, 0x30, 0x1c, 0xf2, 0x41, - 0xd4, 0x96, 0x0a, 0x22, 0x35, 0xa2, 0x04, 0xd5, 0x9c, 0x75, 0x58, 0xa4, 0x43, 0x87, 0xc0, 0x0e, - 0xbd, 0xe0, 0xcc, 0x09, 0xac, 0x40, 0x68, 0x48, 0xa4, 0xee, 0x2e, 0x60, 0x52, 0x57, 0xa6, 0x74, - 0x49, 0x45, 0x5a, 0x9d, 0xc2, 0xf7, 0x79, 0x9f, 0x3b, 0xe7, 0x7c, 0x80, 0x72, 0x5a, 0xce, 0x5c, - 0x4e, 0xe4, 0x31, 0x65, 0x22, 0x0a, 0xdd, 0x93, 0x91, 0x35, 0x19, 0x0f, 0x6c, 0x21, 0xac, 0xd4, - 0x49, 0x18, 0x76, 0x27, 0xa3, 0x23, 0x82, 0xb0, 0x47, 0xa0, 0x24, 0x31, 0x29, 0x1f, 0xce, 0x27, - 0xf8, 0x99, 0x20, 0x56, 0xb3, 0x2a, 0x31, 0x48, 0x50, 0x4c, 0xc8, 0x9c, 0x8d, 0x29, 0x99, 0xb3, - 0x09, 0xc5, 0xb1, 0xef, 0x9c, 0xdb, 0x21, 0x6f, 0x2e, 0x10, 0x03, 0x97, 0x9f, 0x82, 0x33, 0x38, - 0xae, 0x13, 0x3a, 0x76, 0xe8, 0xf9, 0x4d, 0x86, 0x69, 0x31, 0x80, 0x3d, 0x80, 0x05, 0xa4, 0x91, - 0x20, 0xb4, 0xc3, 0x49, 0x20, 0x25, 0xd0, 0x45, 0x24, 0x26, 0x94, 0xa1, 0xbb, 0x08, 0x47, 0x21, - 0x94, 0x7d, 0x13, 0x56, 0x88, 0x2c, 0x30, 0x87, 0x94, 0xac, 0x51, 0x20, 0x58, 0xc2, 0xa1, 0x58, - 0xc4, 0x54, 0x41, 0xdf, 0x52, 0xbe, 0x16, 0xd2, 0xc1, 0x13, 0x58, 0x95, 0x64, 0x32, 0x93, 0x6b, - 0x19, 0x73, 0x2d, 0x51, 0xf2, 0x54, 0xb6, 0x75, 0x58, 0x10, 0x4d, 0x72, 0xfa, 0x96, 0xcc, 0x2d, - 0x56, 0xc2, 0x8a, 0x68, 0x3d, 0x6a, 0x4a, 0xf3, 0x94, 0x68, 0x62, 0xda, 0x33, 0x7e, 0xc5, 0xbe, - 0x07, 0xf3, 0x44, 0x32, 0xa8, 0x5e, 0x21, 0xa7, 0x5f, 0x43, 0x4e, 0xbf, 0xac, 0x4e, 0x38, 0xa3, - 0x54, 0x64, 0xf6, 0xf5, 0x7e, 0xe2, 0x5b, 0x2c, 0x87, 0xa1, 0x73, 0xc2, 0x43, 0x67, 0xc4, 0x9b, - 0xab, 0x44, 0x60, 0xea, 0x5b, 0xac, 0xd4, 0xc9, 0x18, 0x53, 0x9a, 0xc4, 0x17, 0xe8, 0x0b, 0x69, - 0x77, 0xe8, 0x05, 0x5c, 0x1d, 0x51, 0x35, 0x6f, 0xca, 0x45, 0x28, 0x80, 0x4a, 0x86, 0x14, 0x82, - 0x38, 0x29, 0x3d, 0xd1, 0x41, 0xe2, 0x2d, 0x24, 0x86, 0x1a, 0xe9, 0x3e, 0xea, 0x30, 0x51, 0xec, - 0xe2, 0x67, 0xf6, 0x85, 0xe2, 0x20, 0xb7, 0x71, 0x7e, 0x41, 0x80, 0x24, 0xef, 0xf8, 0x69, 0x86, - 0x36, 0x44, 0xc9, 0x3f, 0x02, 0x4d, 0xbd, 0x23, 0xce, 0x61, 0x79, 0xee, 0xf0, 0x4a, 0x32, 0x13, - 0x20, 0xd0, 0x81, 0x3b, 0xc4, 0xd5, 0xec, 0xb8, 0x3a, 0x0a, 0xf1, 0xde, 0xaa, 0x02, 0x22, 0xd2, - 0x5d, 0xa8, 0x8c, 0x27, 0xc7, 0x43, 0xa7, 0x4f, 0x28, 0x39, 0x2a, 0x85, 0x40, 0x88, 0x20, 0xf4, - 0x5b, 0xa2, 0x28, 0xc2, 0xc8, 0x23, 0x46, 0x45, 0xc2, 0x10, 0x05, 0x79, 0x3b, 0xf7, 0x91, 0x9d, - 0x54, 0x4d, 0xfc, 0x6d, 0x6c, 0xc0, 0x52, 0xb2, 0xd1, 0x72, 0xe3, 0x79, 0x00, 0x25, 0xc9, 0xab, - 0xd4, 0xc1, 0x47, 0x5d, 0x3b, 0x8a, 0x16, 0x2a, 0x5a, 0x94, 0x6e, 0xfc, 0xd6, 0x1c, 0x2c, 0x4a, - 0xe8, 0xa6, 0x18, 0xda, 0xee, 0x64, 0x34, 0xb2, 0xfd, 0x14, 0x26, 0x98, 0x79, 0x39, 0x13, 0xcc, - 0xce, 0x30, 0xc1, 0xa4, 0xe6, 0x4b, 0x3c, 0x34, 0xa9, 0xf9, 0x8a, 0xb9, 0x24, 0x65, 0x44, 0x3f, - 0x07, 0xad, 0x49, 0x70, 0x8f, 0xce, 0x5b, 0x67, 0x58, 0x76, 0x21, 0x85, 0x65, 0xeb, 0x0c, 0x77, - 0x6e, 0x8a, 0xe1, 0xbe, 0x09, 0x44, 0x34, 0x6a, 0xf6, 0x8b, 0xa4, 0x9f, 0x20, 0x4c, 0x1e, 0xa6, - 0xbe, 0x0b, 0xf3, 0xd3, 0x3c, 0x8e, 0x98, 0x69, 0x3d, 0x85, 0xc3, 0x39, 0x23, 0x8e, 0xbb, 0x95, - 0x86, 0x5c, 0x96, 0x1c, 0xce, 0x19, 0xf1, 0x5d, 0x4c, 0x51, 0xf8, 0x6d, 0x00, 0xaa, 0x1b, 0x17, - 0x0d, 0xe0, 0xa2, 0x79, 0x27, 0x39, 0x17, 0xfa, 0xa8, 0xaf, 0x8b, 0x8f, 0x89, 0xcf, 0x71, 0x15, - 0x95, 0x31, 0x27, 0x2e, 0xa0, 0x67, 0x50, 0xf7, 0xc6, 0xdc, 0xb5, 0x62, 0x5e, 0x53, 0xc1, 0xa2, - 0xde, 0x7e, 0x49, 0x51, 0x1d, 0x85, 0x6b, 0xd6, 0x44, 0xde, 0xe8, 0x93, 0xed, 0xd1, 0xc0, 0x73, - 0xad, 0xb4, 0xea, 0x97, 0x28, 0xad, 0x8e, 0x99, 0xa3, 0x6f, 0xe3, 0x6f, 0x65, 0xa0, 0xa2, 0x35, - 0x9b, 0x2d, 0xc3, 0xc2, 0xe6, 0xc1, 0xc1, 0x61, 0xdb, 0x6c, 0xf5, 0x3a, 0x9f, 0xb6, 0xad, 0xcd, - 0xdd, 0x83, 0x6e, 0xbb, 0x71, 0x43, 0x80, 0x77, 0x0f, 0x36, 0x5b, 0xbb, 0xd6, 0xf6, 0x81, 0xb9, - 0xa9, 0xc0, 0x19, 0xb6, 0x02, 0xcc, 0x6c, 0xef, 0x1d, 0xf4, 0xda, 0x09, 0x78, 0x96, 0x35, 0xa0, - 0xba, 0x61, 0xb6, 0x5b, 0x9b, 0x3b, 0x12, 0x92, 0x63, 0x4b, 0xd0, 0xd8, 0x3e, 0xda, 0xdf, 0xea, - 0xec, 0x3f, 0xb5, 0x36, 0x5b, 0xfb, 0x9b, 0xed, 0xdd, 0xf6, 0x56, 0x23, 0xcf, 0x6a, 0x50, 0x6e, - 0x6d, 0xb4, 0xf6, 0xb7, 0x0e, 0xf6, 0xdb, 0x5b, 0x8d, 0x82, 0xf1, 0x5d, 0x28, 0xc7, 0x1d, 0xad, - 0x40, 0xf1, 0x68, 0xff, 0xd9, 0xfe, 0xc1, 0x67, 0xfb, 0x8d, 0x1b, 0xac, 0x0c, 0x05, 0xac, 0xbf, - 0x91, 0x61, 0x00, 0x73, 0x54, 0x67, 0x23, 0xcb, 0x4a, 0x90, 0xdf, 0x38, 0xe8, 0xed, 0x34, 0x72, - 0xc6, 0x9f, 0x67, 0x60, 0x19, 0xbb, 0x3c, 0x98, 0x66, 0x02, 0xf7, 0xa0, 0xd2, 0xf7, 0xbc, 0xb1, - 0xd0, 0xb4, 0x62, 0x89, 0x42, 0x07, 0x89, 0x05, 0x4e, 0xcc, 0xfb, 0xc4, 0xf3, 0xfb, 0x5c, 0xf2, - 0x00, 0x40, 0xd0, 0xb6, 0x80, 0x08, 0x1a, 0x94, 0x44, 0x4c, 0x18, 0xc4, 0x02, 0x2a, 0x04, 0x23, - 0x94, 0x15, 0x98, 0x3b, 0xf6, 0xb9, 0xdd, 0x3f, 0x93, 0xab, 0x5f, 0x7e, 0xb1, 0xf7, 0xe2, 0x33, - 0x80, 0xbe, 0xa0, 0xa9, 0x21, 0x1f, 0xe0, 0x12, 0x28, 0x99, 0xf3, 0x12, 0xbe, 0x29, 0xc1, 0x62, - 0x37, 0xb2, 0x8f, 0x6d, 0x77, 0xe0, 0xb9, 0x7c, 0x20, 0x55, 0x8d, 0x18, 0x60, 0x1c, 0xc2, 0xca, - 0x74, 0xff, 0x24, 0xbf, 0xf8, 0x50, 0xe3, 0x17, 0x24, 0xf9, 0xaf, 0x5d, 0x4f, 0x0a, 0x1a, 0xef, - 0xf8, 0x3b, 0x79, 0xc8, 0x0b, 0x49, 0xf0, 0x5a, 0xa1, 0x51, 0x17, 0xed, 0x73, 0x33, 0xe6, 0x1f, - 0x3c, 0x6a, 0x20, 0x11, 0x81, 0xce, 0xb3, 0xca, 0x08, 0x41, 0xd1, 0x20, 0x4a, 0xf6, 0x79, 0xff, - 0x5c, 0x1e, 0x68, 0x51, 0xb2, 0xc9, 0xfb, 0xe7, 0xa8, 0x53, 0xd9, 0x21, 0xe5, 0xa5, 0xf5, 0x5e, - 0x0c, 0xec, 0x10, 0x73, 0xca, 0x24, 0xcc, 0x57, 0x8c, 0x92, 0x30, 0x57, 0x13, 0x8a, 0x8e, 0x7b, - 0xec, 0x4d, 0xdc, 0x01, 0x2e, 0xef, 0x92, 0xa9, 0x3e, 0xd1, 0xda, 0x84, 0x9c, 0x48, 0x6c, 0x44, - 0xb4, 0x9a, 0x4b, 0x02, 0xd0, 0x13, 0x5b, 0xd1, 0x07, 0x50, 0x0e, 0xae, 0xdc, 0xbe, 0xbe, 0x86, - 0x97, 0xe4, 0xf8, 0x88, 0xde, 0xaf, 0x77, 0xaf, 0xdc, 0x3e, 0xae, 0xd8, 0x52, 0x20, 0x7f, 0xb1, - 0x27, 0x50, 0x8a, 0xce, 0x7d, 0x89, 0x03, 0xdf, 0xd4, 0x73, 0xa8, 0xc3, 0x5e, 0x52, 0xaf, 0x23, - 0x54, 0xf6, 0x10, 0xe6, 0xf0, 0x70, 0x36, 0x68, 0x56, 0x31, 0x93, 0x92, 0xf7, 0x45, 0x33, 0xd0, - 0xd0, 0xc3, 0x07, 0x78, 0x50, 0x6b, 0x4a, 0xb4, 0xb5, 0x67, 0x50, 0x4b, 0x94, 0xa5, 0x2b, 0xd1, - 0x35, 0x52, 0xa2, 0xdf, 0xd6, 0x95, 0xe8, 0x78, 0x27, 0x90, 0xd9, 0x74, 0xa5, 0xfa, 0x97, 0xa1, - 0xa4, 0xba, 0x22, 0xd6, 0x9f, 0x5c, 0x3b, 0x56, 0xf7, 0xf9, 0xfe, 0x66, 0xe3, 0x06, 0x9b, 0x87, - 0x4a, 0x6b, 0x13, 0x97, 0x34, 0x02, 0x32, 0x02, 0xe5, 0xb0, 0xd5, 0xed, 0x46, 0x90, 0xac, 0xb1, - 0x0d, 0x8d, 0xe9, 0x96, 0x0a, 0x9a, 0x0c, 0x15, 0x4c, 0x1e, 0x5d, 0xc7, 0x00, 0xa1, 0x22, 0xd1, - 0x69, 0x34, 0xc9, 0xe1, 0xf4, 0x61, 0x3c, 0x81, 0x86, 0xd8, 0xd7, 0xc4, 0x50, 0x05, 0xda, 0x11, - 0xf0, 0x50, 0xc8, 0x76, 0xfa, 0xf1, 0x75, 0xc9, 0xac, 0x10, 0x0c, 0xab, 0x32, 0x3e, 0x84, 0x05, - 0x2d, 0x5b, 0xac, 0xd2, 0x8a, 0xbd, 0x72, 0x5a, 0xa5, 0x45, 0x05, 0x86, 0x52, 0x8c, 0x55, 0x58, - 0x16, 0x9f, 0xed, 0x73, 0xee, 0x86, 0xdd, 0xc9, 0x31, 0xd9, 0x1c, 0x1d, 0xcf, 0x15, 0x8a, 0x4d, - 0x39, 0x4a, 0xb9, 0x9e, 0xc8, 0xd7, 0xa5, 0xf6, 0x9b, 0x45, 0xd2, 0x58, 0xd3, 0x6a, 0xc0, 0x8c, - 0xeb, 0xf8, 0x37, 0xa1, 0x05, 0x97, 0x23, 0x90, 0x18, 0xd6, 0xc3, 0x76, 0xdb, 0xb4, 0x0e, 0xf6, - 0x77, 0x3b, 0xfb, 0x82, 0x51, 0x8a, 0x61, 0x45, 0xc0, 0xf6, 0x36, 0x42, 0x32, 0x46, 0x03, 0xea, - 0x4f, 0x79, 0xd8, 0x71, 0x4f, 0x3c, 0x65, 0x5f, 0xfb, 0x8b, 0x02, 0xcc, 0x47, 0xa0, 0x58, 0x8b, - 0x3e, 0xe7, 0x7e, 0xe0, 0x78, 0x2e, 0x0a, 0xc4, 0x65, 0x53, 0x7d, 0x8a, 0xdd, 0xcd, 0x19, 0x70, - 0x37, 0x74, 0xc2, 0x2b, 0x2b, 0x71, 0xe4, 0x56, 0x57, 0x60, 0xb9, 0x8b, 0x2e, 0x41, 0xc1, 0x1e, - 0x3a, 0xb6, 0x32, 0xd5, 0xd2, 0x87, 0x80, 0xf6, 0xbd, 0xa1, 0xe7, 0xa3, 0xec, 0x5b, 0x36, 0xe9, - 0x83, 0x3d, 0x82, 0x25, 0x21, 0x83, 0xeb, 0xe7, 0xa0, 0xc8, 0x3f, 0xe8, 0xf4, 0x8f, 0xb9, 0x93, - 0xd1, 0x61, 0x7c, 0x16, 0x2a, 0x52, 0xc4, 0xde, 0x29, 0x72, 0x48, 0x61, 0x29, 0xca, 0x40, 0xea, - 0xdc, 0x82, 0x3b, 0x19, 0xb5, 0x30, 0x25, 0xc2, 0x7f, 0x0c, 0xcb, 0x02, 0x3f, 0x12, 0xaf, 0xa2, - 0x1c, 0xf3, 0x98, 0x43, 0x14, 0xd6, 0x91, 0x69, 0x51, 0x9e, 0x5b, 0x50, 0xa6, 0x56, 0x89, 0x19, - 0x2f, 0x90, 0x18, 0x8f, 0x4d, 0xe1, 0x7e, 0x30, 0x63, 0x55, 0x9d, 0x23, 0x41, 0x60, 0xca, 0xaa, - 0xaa, 0xd9, 0x65, 0x4b, 0xd3, 0x76, 0xd9, 0xc7, 0xb0, 0x7c, 0x2c, 0x48, 0xf0, 0x8c, 0xdb, 0x03, - 0xee, 0x5b, 0x31, 0x61, 0x93, 0xba, 0xb2, 0x28, 0x12, 0x77, 0x30, 0x2d, 0x5a, 0x07, 0x42, 0xce, - 0x11, 0x6c, 0x81, 0x0f, 0xac, 0xd0, 0xb3, 0x50, 0xfc, 0x41, 0x06, 0x53, 0x32, 0x6b, 0x04, 0xee, - 0x79, 0x9b, 0x02, 0x98, 0xc4, 0x3b, 0xf5, 0xed, 0xf1, 0x99, 0x54, 0x28, 0x22, 0xbc, 0xa7, 0x02, - 0xc8, 0x6e, 0x43, 0x51, 0x90, 0xbc, 0xcb, 0xc9, 0xf8, 0x45, 0x22, 0xbb, 0x02, 0xb1, 0xb7, 0x61, - 0x0e, 0xeb, 0x08, 0x9a, 0x0d, 0xa4, 0xf7, 0x6a, 0xcc, 0xc8, 0x1d, 0xd7, 0x94, 0x69, 0x42, 0x98, - 0x9c, 0xf8, 0x0e, 0x71, 0x99, 0xb2, 0x89, 0xbf, 0xd9, 0xf7, 0x35, 0x96, 0xb5, 0x88, 0x79, 0x95, - 0x3c, 0x30, 0x45, 0x69, 0xd7, 0x71, 0xaf, 0xaf, 0x94, 0x19, 0xfd, 0x20, 0x5f, 0xaa, 0x34, 0xaa, - 0xc6, 0xb7, 0xa1, 0x40, 0xa3, 0x23, 0x88, 0x10, 0xc7, 0x2e, 0x23, 0x89, 0x10, 0xa1, 0x4d, 0x28, - 0xba, 0x3c, 0xbc, 0xf0, 0xfc, 0x17, 0xea, 0x50, 0x5a, 0x7e, 0x1a, 0x3f, 0xc6, 0xd3, 0x94, 0xc8, - 0xe2, 0x4e, 0x8a, 0xa1, 0x20, 0x0f, 0x9a, 0xde, 0xe0, 0xcc, 0x96, 0x07, 0x3c, 0x25, 0x04, 0x74, - 0xcf, 0xec, 0x19, 0xf2, 0xc8, 0xce, 0x1a, 0xdd, 0xdf, 0x86, 0xba, 0xb2, 0xf1, 0x07, 0xd6, 0x90, - 0x9f, 0x84, 0x92, 0xdc, 0xab, 0xd2, 0xc0, 0x1f, 0xec, 0xf2, 0x93, 0xd0, 0xd8, 0x83, 0x05, 0x49, - 0x90, 0x07, 0x63, 0xae, 0xaa, 0xfe, 0x4e, 0x9a, 0x3c, 0x5d, 0x79, 0xbc, 0x98, 0xdc, 0x68, 0xc9, - 0x77, 0x21, 0x21, 0x64, 0x1b, 0x9f, 0x00, 0xd3, 0xb7, 0x61, 0x59, 0x9e, 0x94, 0x6a, 0xd5, 0x59, - 0xbe, 0x32, 0x89, 0x45, 0xb2, 0xb3, 0x33, 0x10, 0xa3, 0x13, 0x4c, 0xfa, 0x7d, 0xe5, 0x7b, 0x51, - 0x32, 0xd5, 0xa7, 0xf1, 0x27, 0x19, 0x58, 0xc4, 0xc2, 0x94, 0x3e, 0x20, 0x99, 0xec, 0xcf, 0xdc, - 0x48, 0x31, 0x3f, 0xba, 0xec, 0x43, 0x1f, 0x5f, 0xfe, 0xf4, 0x34, 0x3f, 0x73, 0x7a, 0xfa, 0x1e, - 0x34, 0x06, 0x7c, 0xe8, 0xa0, 0x1b, 0x8e, 0x12, 0x25, 0x48, 0x03, 0x98, 0x57, 0x70, 0xa9, 0x0d, - 0x1a, 0xff, 0x30, 0x03, 0x0b, 0x24, 0xa9, 0xa0, 0x5e, 0x2d, 0x07, 0xea, 0x63, 0xa5, 0x48, 0x4a, - 0x56, 0x25, 0xfb, 0x14, 0xef, 0xe0, 0x08, 0x25, 0xe4, 0x9d, 0x1b, 0x52, 0xc1, 0x94, 0x50, 0xf6, - 0x11, 0xea, 0x30, 0xae, 0x85, 0xc0, 0x14, 0xb7, 0x9e, 0xe4, 0xa4, 0xec, 0xdc, 0x40, 0x05, 0xc7, - 0x45, 0xd0, 0x46, 0x49, 0x68, 0xb6, 0x02, 0x6c, 0x6c, 0x43, 0x2d, 0x51, 0x4d, 0xe2, 0x88, 0xb7, - 0x4a, 0x47, 0xbc, 0x33, 0x66, 0x94, 0xec, 0xac, 0x19, 0xe5, 0x0a, 0x16, 0x4d, 0x6e, 0x0f, 0xae, - 0xb6, 0x3d, 0xff, 0x30, 0x38, 0x0e, 0xb7, 0x49, 0xfc, 0x13, 0xfc, 0x3d, 0xb2, 0x0d, 0x26, 0xce, - 0x51, 0x95, 0x89, 0x48, 0xa9, 0xcb, 0x5f, 0x83, 0x7a, 0x6c, 0x44, 0xd4, 0xce, 0xe2, 0x6a, 0x91, - 0x1d, 0x11, 0x8f, 0xe4, 0x84, 0xaa, 0x19, 0x1c, 0x87, 0xf2, 0x34, 0x0e, 0x7f, 0x1b, 0x7f, 0x23, - 0x0f, 0x4c, 0x50, 0xf3, 0x14, 0xc1, 0x4c, 0x99, 0x3f, 0xb3, 0x33, 0xe6, 0xcf, 0x47, 0xc0, 0x34, - 0x04, 0x65, 0x95, 0xcd, 0x45, 0x56, 0xd9, 0x46, 0x8c, 0x2b, 0x8d, 0xb2, 0x8f, 0x60, 0x49, 0xca, - 0xd2, 0xc9, 0xa6, 0x12, 0x69, 0x30, 0x12, 0xaa, 0x13, 0xed, 0x55, 0xa6, 0x4f, 0xa1, 0xfe, 0xd3, - 0x69, 0x1b, 0x9a, 0x3e, 0x95, 0xe2, 0xaf, 0x11, 0xe0, 0xdc, 0x2b, 0x09, 0xb0, 0x38, 0x43, 0x80, - 0xda, 0xe1, 0x4f, 0x29, 0x79, 0xf8, 0x63, 0x40, 0x4d, 0x19, 0x38, 0xc9, 0xaf, 0x83, 0x04, 0xc7, - 0x8a, 0xb4, 0x72, 0xa2, 0x6f, 0xc7, 0x7d, 0x68, 0xa8, 0x13, 0x9a, 0xe8, 0x78, 0x89, 0x7c, 0x16, - 0xe4, 0x01, 0xdf, 0xa6, 0x3a, 0x64, 0x4a, 0x1c, 0xe6, 0x57, 0xa6, 0x0e, 0xf3, 0xdf, 0x87, 0x85, - 0x40, 0xd0, 0xaf, 0x35, 0x71, 0xa5, 0x83, 0x11, 0x1f, 0xa0, 0xd6, 0x56, 0x32, 0x1b, 0x98, 0x70, - 0x14, 0xc3, 0x67, 0x8f, 0x4e, 0x6a, 0x29, 0x47, 0x27, 0x4f, 0x62, 0x5b, 0x60, 0x70, 0xe6, 0x8c, - 0x50, 0x66, 0x88, 0x9d, 0x71, 0xe4, 0x00, 0x77, 0xcf, 0x9c, 0x91, 0xa9, 0x0c, 0xcf, 0xe2, 0xc3, - 0xf8, 0xbf, 0x19, 0x68, 0x08, 0x3a, 0x48, 0x2c, 0xb1, 0xef, 0x02, 0x32, 0x83, 0xd7, 0x5c, 0x61, - 0x15, 0x81, 0xab, 0x16, 0xd8, 0xb7, 0x01, 0x57, 0x8c, 0x25, 0x54, 0x54, 0xb9, 0xbe, 0x9a, 0xc9, - 0xf5, 0x15, 0xf3, 0xd0, 0x9d, 0x1b, 0xa4, 0x7b, 0x08, 0x08, 0xfb, 0x2e, 0x94, 0x05, 0x61, 0x22, - 0x95, 0x48, 0x1f, 0x30, 0x25, 0x79, 0xa5, 0xac, 0x11, 0x91, 0x75, 0x2c, 0x3f, 0xd3, 0xcc, 0xb7, - 0xf9, 0x14, 0xf3, 0xad, 0xb6, 0x80, 0x77, 0x00, 0x9e, 0xf1, 0xab, 0x5d, 0xaf, 0x8f, 0x7a, 0xe5, - 0x1d, 0x00, 0x41, 0xcb, 0x27, 0xf6, 0xc8, 0x91, 0x67, 0x42, 0x05, 0xb3, 0xfc, 0x82, 0x5f, 0x6d, - 0x23, 0x40, 0x4c, 0xa4, 0x48, 0x8e, 0x57, 0x71, 0xc1, 0x2c, 0xbd, 0xe0, 0x57, 0xb4, 0x84, 0x2d, - 0xa8, 0x3d, 0xe3, 0x57, 0x5b, 0x9c, 0x84, 0x4c, 0xcf, 0x17, 0x44, 0xe4, 0xdb, 0x17, 0x42, 0xaa, - 0x4c, 0x98, 0x5e, 0x2b, 0xbe, 0x7d, 0xf1, 0x8c, 0x5f, 0x29, 0x33, 0x70, 0x51, 0xa4, 0x0f, 0xbd, - 0xbe, 0xdc, 0x37, 0x95, 0x13, 0x49, 0xdc, 0x28, 0x73, 0xee, 0x05, 0xfe, 0x36, 0xfe, 0x32, 0x03, - 0x35, 0xd1, 0x7e, 0x64, 0xcb, 0x62, 0xca, 0x94, 0x2f, 0x52, 0x26, 0xf6, 0x45, 0x7a, 0x2c, 0xb9, - 0x1a, 0xf1, 0xf8, 0xec, 0xf5, 0x3c, 0x1e, 0xe7, 0x86, 0x18, 0xfc, 0x07, 0x50, 0xa6, 0x65, 0x29, - 0xd6, 0x79, 0x2e, 0x31, 0xc1, 0x89, 0x0e, 0x99, 0x25, 0x44, 0x7b, 0x46, 0xae, 0x0f, 0xda, 0xf9, - 0x22, 0x0d, 0x71, 0xd9, 0x8f, 0x4e, 0x15, 0x53, 0xa6, 0xa1, 0x70, 0x8d, 0xeb, 0x83, 0x7e, 0x78, - 0x37, 0x37, 0x73, 0x78, 0x77, 0x00, 0x25, 0x31, 0xd5, 0xd8, 0xd9, 0x94, 0x42, 0x33, 0x69, 0x85, - 0x0a, 0x49, 0xc0, 0x16, 0x9b, 0x82, 0x60, 0x74, 0x59, 0x29, 0x09, 0xd8, 0x01, 0x3f, 0x44, 0x66, - 0x97, 0x81, 0x8a, 0xb6, 0x02, 0xf0, 0xfc, 0x33, 0x1a, 0x2f, 0x5a, 0x2e, 0x49, 0x12, 0x4f, 0x0c, - 0xf8, 0xce, 0x0d, 0xb3, 0xd6, 0x4f, 0xcc, 0xc0, 0xba, 0xa4, 0x55, 0xcc, 0x99, 0x4d, 0xb8, 0x4d, - 0xa9, 0x86, 0x2b, 0x02, 0x15, 0xbf, 0x37, 0xe6, 0x20, 0x2f, 0x50, 0x8d, 0x8f, 0x61, 0x41, 0x6b, - 0x06, 0xa9, 0xf9, 0xaf, 0xdb, 0x43, 0xe3, 0xd7, 0xa2, 0xcc, 0xa2, 0x0e, 0xb2, 0x50, 0x29, 0x37, - 0x12, 0x3e, 0xa0, 0x8e, 0x4b, 0x77, 0x15, 0x02, 0x09, 0xb4, 0xd7, 0x76, 0x6d, 0xf8, 0x0d, 0x58, - 0xd4, 0x4a, 0xdf, 0x76, 0x5c, 0x7b, 0xe8, 0xfc, 0x18, 0x37, 0xfc, 0xc0, 0x39, 0x75, 0xa7, 0xca, - 0x27, 0xd0, 0x97, 0x2a, 0xff, 0x1f, 0x65, 0x61, 0x49, 0x56, 0x80, 0x8e, 0x81, 0x8e, 0x90, 0xe2, - 0xf6, 0x82, 0x53, 0xf6, 0x5d, 0xa8, 0x89, 0xb1, 0xb1, 0x7c, 0x7e, 0xea, 0x04, 0x21, 0x57, 0x96, - 0xb1, 0x14, 0xc6, 0x25, 0x36, 0x73, 0x81, 0x6a, 0x4a, 0x4c, 0xf6, 0x31, 0x54, 0x30, 0x2b, 0x1d, - 0xa3, 0xc8, 0x89, 0x68, 0xce, 0x66, 0xa4, 0x81, 0xde, 0xb9, 0x61, 0x42, 0x10, 0x0f, 0xfb, 0xc7, - 0x50, 0xc1, 0x39, 0x3c, 0xc7, 0x81, 0x9c, 0x62, 0x55, 0x33, 0x03, 0x2d, 0x32, 0x8f, 0xe3, 0x61, - 0x6f, 0x41, 0x8d, 0x98, 0x95, 0x1c, 0x27, 0xe9, 0x70, 0xb4, 0x36, 0x9b, 0x5d, 0x8d, 0xa4, 0x68, - 0xfc, 0x58, 0xfb, 0xde, 0x28, 0x43, 0x31, 0xf4, 0x9d, 0xd3, 0x53, 0xee, 0x1b, 0x2b, 0xd1, 0xd0, - 0x08, 0x2e, 0xcc, 0xbb, 0x21, 0x1f, 0x0b, 0xd9, 0xdc, 0xf8, 0x0f, 0x19, 0xa8, 0x48, 0xbe, 0xfa, - 0x33, 0x9b, 0xe3, 0xd6, 0x34, 0xcf, 0x5a, 0x3a, 0xb1, 0x89, 0x1d, 0x69, 0xdf, 0x85, 0xf9, 0x91, - 0x90, 0xd3, 0x85, 0x1e, 0x99, 0xb0, 0xc5, 0xd5, 0x15, 0x58, 0x8a, 0xc9, 0xeb, 0xb0, 0x88, 0x52, - 0x73, 0x60, 0x85, 0xce, 0xd0, 0x52, 0x89, 0xd2, 0x8b, 0x75, 0x81, 0x92, 0x7a, 0xce, 0x70, 0x4f, - 0x26, 0x08, 0xe1, 0x31, 0x08, 0xed, 0x53, 0x2e, 0xd7, 0x36, 0x7d, 0x18, 0x4d, 0x58, 0x99, 0x52, - 0x21, 0x95, 0xfa, 0xfb, 0xbf, 0x17, 0x60, 0x75, 0x26, 0x49, 0xaa, 0xc1, 0x91, 0x0d, 0x6a, 0xe8, - 0x8c, 0x8e, 0xbd, 0xe8, 0x84, 0x36, 0xa3, 0xd9, 0xa0, 0x76, 0x45, 0x8a, 0x3a, 0xa1, 0xe5, 0xb0, - 0xac, 0x08, 0x12, 0x8f, 0x58, 0x23, 0x2d, 0x33, 0x8b, 0x3a, 0xd0, 0x07, 0xc9, 0x4d, 0x6c, 0xba, - 0x3a, 0x05, 0xd7, 0x45, 0xa3, 0xc5, 0xf1, 0x0c, 0x2c, 0x60, 0xbf, 0x09, 0xcd, 0x88, 0xee, 0xa5, - 0xd8, 0xae, 0xa9, 0xcc, 0xa2, 0xa6, 0xaf, 0xbf, 0xa2, 0xa6, 0xc4, 0xd9, 0x1d, 0xca, 0x4e, 0x2b, - 0x6a, 0xc9, 0x50, 0x81, 0x51, 0x5d, 0xe7, 0xf0, 0x86, 0xaa, 0x0b, 0xc5, 0xf0, 0xd9, 0x1a, 0xf3, - 0xaf, 0xd5, 0x37, 0x3c, 0x97, 0x4c, 0x54, 0x6b, 0xde, 0x92, 0x05, 0x47, 0x49, 0x7a, 0xbd, 0x67, - 0xb0, 0x72, 0x61, 0x3b, 0xa1, 0xea, 0xa3, 0xa6, 0xb1, 0x17, 0xb0, 0xbe, 0xc7, 0xaf, 0xa8, 0xef, - 0x33, 0xca, 0x9c, 0x50, 0x4c, 0x96, 0x2e, 0x66, 0x81, 0xc1, 0xda, 0xdf, 0xcb, 0x41, 0x3d, 0x59, - 0x8a, 0x60, 0x2c, 0x72, 0xb3, 0x51, 0xf2, 0xa6, 0x14, 0x82, 0xa5, 0xf5, 0x60, 0x9f, 0xe4, 0xcc, - 0x59, 0xbb, 0x46, 0x36, 0xc5, 0xae, 0xa1, 0x9b, 0x13, 0x72, 0xaf, 0xb2, 0xdf, 0xe6, 0x5f, 0xcb, - 0x7e, 0x5b, 0x48, 0xb3, 0xdf, 0x5e, 0x6f, 0xf4, 0x9b, 0xfb, 0x99, 0x8c, 0x7e, 0xc5, 0x97, 0x18, - 0xfd, 0x12, 0xa6, 0xca, 0xd2, 0xb4, 0xa9, 0x32, 0xc5, 0xc4, 0x57, 0xfe, 0x12, 0x26, 0xbe, 0xb5, - 0xbf, 0xcc, 0x00, 0x9b, 0x5d, 0x0b, 0xec, 0x29, 0x19, 0x88, 0x5c, 0x3e, 0x94, 0x7c, 0xfa, 0x1b, - 0xaf, 0xb7, 0x9e, 0xd4, 0xf4, 0xab, 0xdc, 0xec, 0x21, 0x2c, 0xea, 0x9e, 0xf5, 0xba, 0x8e, 0x5e, - 0x33, 0x99, 0x9e, 0x14, 0x9f, 0xe4, 0x68, 0xa6, 0xf1, 0xfc, 0x2b, 0x4d, 0xe3, 0x85, 0x57, 0x9a, - 0xc6, 0xe7, 0x92, 0xa6, 0xf1, 0xb5, 0xff, 0x9c, 0x81, 0xc5, 0x14, 0x92, 0xfd, 0xea, 0xfa, 0x2c, - 0x28, 0x2d, 0xc1, 0xc4, 0xb2, 0x92, 0xd2, 0x74, 0xfe, 0xb5, 0x0b, 0x95, 0x78, 0x2a, 0x54, 0xe4, - 0xc9, 0x83, 0x57, 0xf1, 0x92, 0x38, 0x87, 0xa9, 0x67, 0x5f, 0xfb, 0xfd, 0x2c, 0x54, 0xb4, 0x44, - 0x31, 0x8a, 0x44, 0xa0, 0x9a, 0x47, 0x12, 0xc9, 0x81, 0x78, 0xc2, 0x70, 0x17, 0xa4, 0x09, 0x83, - 0xd2, 0x69, 0x29, 0x49, 0xa1, 0x0f, 0x11, 0xd6, 0x61, 0x51, 0x19, 0xef, 0x78, 0xec, 0x78, 0x28, - 0x77, 0x96, 0x05, 0x69, 0xc2, 0xe3, 0x91, 0x1f, 0x23, 0x7b, 0xa8, 0x94, 0xbf, 0x78, 0xee, 0x90, - 0xb0, 0xc9, 0x3e, 0xb0, 0x40, 0xcb, 0x41, 0x4d, 0xa2, 0xa0, 0xea, 0x0f, 0x60, 0x59, 0x2d, 0x86, - 0x64, 0x0e, 0x32, 0x19, 0x30, 0xb9, 0x14, 0xf4, 0x2c, 0xdf, 0x87, 0x3b, 0x53, 0x6d, 0x9a, 0xca, - 0x4a, 0x1e, 0xb2, 0x37, 0x13, 0xad, 0xd3, 0x4b, 0x58, 0xfb, 0x09, 0xd4, 0x12, 0x6c, 0xf1, 0xab, - 0x9b, 0xf2, 0xe9, 0x53, 0x1d, 0x1a, 0x51, 0xfd, 0x54, 0x67, 0xed, 0xff, 0xe4, 0x80, 0xcd, 0x72, - 0xe6, 0x5f, 0x64, 0x13, 0x66, 0x09, 0x33, 0x97, 0x42, 0x98, 0xff, 0xdf, 0xa4, 0x85, 0xf7, 0x61, - 0x41, 0x46, 0x60, 0x69, 0x16, 0x58, 0x5a, 0x9c, 0x8d, 0x28, 0x41, 0xb5, 0xe2, 0xdb, 0xd3, 0x9e, - 0x20, 0xa5, 0x44, 0xd0, 0x89, 0x26, 0x2e, 0x4d, 0x39, 0x84, 0x1c, 0xc1, 0x9c, 0xed, 0xf6, 0xcf, - 0x3c, 0x5f, 0xf2, 0xc1, 0x5f, 0xfa, 0xd2, 0x9b, 0xe5, 0x7a, 0x0b, 0xf3, 0xa3, 0x8c, 0x66, 0xca, - 0xc2, 0x8c, 0x0f, 0xa0, 0xa2, 0x81, 0xd1, 0x2a, 0xd9, 0xd9, 0xdb, 0x38, 0x68, 0xdc, 0x60, 0x35, - 0x28, 0x9b, 0xed, 0xcd, 0x83, 0x4f, 0xdb, 0x66, 0x7b, 0xab, 0x91, 0x61, 0x25, 0xc8, 0xef, 0x1e, - 0x74, 0x7b, 0x8d, 0xac, 0xb1, 0x06, 0x4d, 0x59, 0xe2, 0xac, 0x85, 0xe2, 0x77, 0xf2, 0xd1, 0xe1, - 0x20, 0x26, 0x4a, 0x85, 0xfc, 0x9b, 0x50, 0xd5, 0x85, 0x19, 0x49, 0x11, 0x53, 0x4e, 0x00, 0x42, - 0x15, 0xf7, 0x34, 0x5e, 0xbd, 0x09, 0x64, 0xda, 0x1d, 0x44, 0xd9, 0xb2, 0x09, 0x29, 0x35, 0xc5, - 0x16, 0x88, 0xaa, 0x4e, 0x82, 0x0c, 0xff, 0x0a, 0xd4, 0x93, 0xc7, 0xf5, 0x92, 0x23, 0xa5, 0xa9, - 0x97, 0x22, 0x77, 0xe2, 0xfc, 0x9e, 0x7d, 0x1f, 0x1a, 0xd3, 0xc7, 0xfd, 0x52, 0x54, 0xbe, 0x26, - 0xff, 0xbc, 0x93, 0xb4, 0x00, 0xb0, 0x1d, 0x58, 0x4a, 0x13, 0xe7, 0x90, 0x3e, 0xae, 0x3f, 0x92, - 0x60, 0xb3, 0x22, 0x1b, 0xfb, 0x8e, 0xb4, 0xea, 0x14, 0xd2, 0x6c, 0xe3, 0xda, 0x60, 0xaf, 0xd3, - 0x3f, 0xcd, 0xbe, 0x73, 0x0e, 0x10, 0xc3, 0x58, 0x03, 0xaa, 0x07, 0x87, 0xed, 0x7d, 0x6b, 0x73, - 0xa7, 0xb5, 0xbf, 0xdf, 0xde, 0x6d, 0xdc, 0x60, 0x0c, 0xea, 0x68, 0xd4, 0xde, 0x8a, 0x60, 0x19, - 0x01, 0x93, 0xd6, 0x35, 0x05, 0xcb, 0xb2, 0x25, 0x68, 0x74, 0xf6, 0xa7, 0xa0, 0x39, 0xd6, 0x84, - 0xa5, 0xc3, 0x36, 0xd9, 0xc1, 0x13, 0xe5, 0xe6, 0x85, 0x8a, 0x20, 0xbb, 0x2b, 0x54, 0x04, 0x8a, - 0x24, 0x94, 0xeb, 0x40, 0x49, 0xce, 0xbf, 0x9b, 0x81, 0xe5, 0xa9, 0x84, 0x38, 0x3e, 0x84, 0xe4, - 0xe6, 0xa4, 0xc4, 0x5c, 0x45, 0xa0, 0x5a, 0x4d, 0xef, 0xc3, 0x42, 0x74, 0xcc, 0x34, 0xb5, 0x2b, - 0x35, 0xa2, 0x04, 0x85, 0xfc, 0x10, 0x16, 0xb5, 0xd3, 0xaa, 0x29, 0x5e, 0xc1, 0xb4, 0x24, 0x99, - 0xc1, 0x58, 0x8d, 0xfc, 0xf0, 0xa7, 0x5a, 0x3d, 0xa0, 0xf0, 0x44, 0x3d, 0x21, 0x36, 0x7a, 0x25, - 0xdb, 0xab, 0x3e, 0xd9, 0xa3, 0x29, 0x42, 0x48, 0xb6, 0x56, 0x9f, 0x70, 0x55, 0xfd, 0x1f, 0xcc, - 0x01, 0xfb, 0x64, 0xc2, 0xfd, 0x2b, 0x8c, 0xff, 0x08, 0x5e, 0xe5, 0x10, 0xa9, 0xce, 0x55, 0xb2, - 0xaf, 0x15, 0xe3, 0x95, 0x16, 0x63, 0x95, 0x7f, 0x75, 0x8c, 0x55, 0xe1, 0x55, 0x31, 0x56, 0x6f, - 0x41, 0xcd, 0x39, 0x75, 0x3d, 0xc1, 0x0a, 0x85, 0xdc, 0x1b, 0x34, 0xe7, 0xee, 0xe5, 0xee, 0x57, - 0xcd, 0xaa, 0x04, 0x0a, 0xa9, 0x37, 0x60, 0x1f, 0xc7, 0x48, 0x7c, 0x70, 0x8a, 0xf1, 0x80, 0x3a, - 0x13, 0x6c, 0x0f, 0x4e, 0xb9, 0x3c, 0x46, 0x42, 0xbd, 0x42, 0x65, 0x16, 0xf0, 0x80, 0xbd, 0x0d, - 0xf5, 0xc0, 0x9b, 0x08, 0x35, 0x42, 0x0d, 0x03, 0x99, 0xc5, 0xaa, 0x04, 0x3d, 0x54, 0x36, 0xd0, - 0xc5, 0x49, 0xc0, 0xad, 0x91, 0x13, 0x04, 0x42, 0x3c, 0xeb, 0x7b, 0x6e, 0xe8, 0x7b, 0x43, 0x69, - 0xe9, 0x5a, 0x98, 0x04, 0x7c, 0x8f, 0x52, 0x36, 0x29, 0x81, 0x7d, 0x2b, 0x6e, 0xd2, 0xd8, 0x76, - 0xfc, 0xa0, 0x09, 0xd8, 0x24, 0xd5, 0x53, 0x94, 0xd6, 0x6d, 0xc7, 0x8f, 0xda, 0x22, 0x3e, 0x82, - 0xa9, 0xd8, 0xaf, 0xca, 0x74, 0xec, 0xd7, 0x8f, 0xd2, 0x63, 0xbf, 0x6a, 0x58, 0xf4, 0x23, 0x59, - 0xf4, 0xec, 0x14, 0x7f, 0xa9, 0x10, 0xb0, 0xd9, 0x90, 0xb6, 0xfa, 0x97, 0x09, 0x69, 0x9b, 0x4f, - 0x0b, 0x69, 0xfb, 0x00, 0x2a, 0x18, 0x6c, 0x64, 0x9d, 0x39, 0x42, 0x86, 0x23, 0xcb, 0x5d, 0x43, - 0x8f, 0x46, 0xda, 0x71, 0xdc, 0xd0, 0x04, 0x5f, 0xfd, 0x0c, 0x66, 0xa3, 0xcb, 0x16, 0x7e, 0x81, - 0xd1, 0x65, 0x32, 0x28, 0x6a, 0x1d, 0x4a, 0x6a, 0x9e, 0x18, 0x83, 0xfc, 0x89, 0xef, 0x8d, 0x94, - 0x45, 0x43, 0xfc, 0x66, 0x75, 0xc8, 0x86, 0x9e, 0xcc, 0x9c, 0x0d, 0x3d, 0xe3, 0xd7, 0xa1, 0xa2, - 0x91, 0x1a, 0x7b, 0x93, 0x4e, 0x21, 0x85, 0x26, 0x26, 0x65, 0x4b, 0x1a, 0xc5, 0xb2, 0x84, 0x76, - 0x06, 0x82, 0xdf, 0x0c, 0x1c, 0x9f, 0x63, 0x1c, 0xa8, 0xe5, 0xf3, 0x73, 0xee, 0x07, 0xca, 0xc2, - 0xd4, 0x88, 0x12, 0x4c, 0x82, 0x1b, 0xbf, 0x01, 0x8b, 0x89, 0xb9, 0x95, 0x2c, 0xe2, 0x6d, 0x98, - 0xc3, 0x71, 0x53, 0x1e, 0x00, 0xc9, 0x28, 0x2f, 0x99, 0x86, 0x01, 0xfe, 0x64, 0x1c, 0xb3, 0xc6, - 0xbe, 0x77, 0x8c, 0x95, 0x64, 0xcc, 0x8a, 0x84, 0x1d, 0xfa, 0xde, 0xb1, 0xf1, 0x67, 0x39, 0xc8, - 0xed, 0x78, 0x63, 0xdd, 0xe9, 0x2d, 0x33, 0xe3, 0xf4, 0x26, 0xd5, 0x4b, 0x2b, 0x52, 0x1f, 0xa5, - 0xcc, 0x8e, 0x66, 0x21, 0xa5, 0x42, 0xde, 0x87, 0xba, 0xe0, 0x13, 0xa1, 0x27, 0xf4, 0xf3, 0x0b, - 0xdb, 0x27, 0x81, 0x38, 0x47, 0x8b, 0xcf, 0x1e, 0x85, 0x3d, 0x6f, 0x9b, 0xe0, 0x6c, 0x09, 0x72, - 0x91, 0xfa, 0x82, 0xc9, 0xe2, 0x93, 0xad, 0xc0, 0x1c, 0x7a, 0x3f, 0x5f, 0x49, 0x13, 0xb7, 0xfc, - 0x62, 0xdf, 0x80, 0xc5, 0x64, 0xb9, 0xc4, 0x8a, 0xa4, 0x6c, 0xa4, 0x17, 0x8c, 0x3c, 0xe9, 0x26, - 0x08, 0x3e, 0x42, 0x38, 0xd2, 0x53, 0xe6, 0x84, 0x73, 0x4c, 0xd2, 0x98, 0x5e, 0x29, 0xc1, 0xf4, - 0xee, 0x42, 0x25, 0x1c, 0x9e, 0x5b, 0x63, 0xfb, 0x6a, 0xe8, 0xd9, 0x03, 0xb9, 0xbe, 0x21, 0x1c, - 0x9e, 0x1f, 0x12, 0x84, 0x3d, 0x04, 0x18, 0x8d, 0xc7, 0x72, 0xed, 0xa1, 0xa9, 0x23, 0x26, 0xe5, - 0xbd, 0xc3, 0x43, 0x22, 0x39, 0xb3, 0x3c, 0x1a, 0x8f, 0xe9, 0x27, 0xdb, 0x82, 0x7a, 0x6a, 0xac, - 0xe6, 0x1d, 0xe5, 0xac, 0xeb, 0x8d, 0xd7, 0x53, 0x16, 0x67, 0xad, 0xaf, 0xc3, 0xd6, 0xbe, 0x0f, - 0xec, 0xe7, 0x8c, 0x98, 0xec, 0x41, 0x39, 0x6a, 0x9f, 0x1e, 0x70, 0x88, 0xee, 0xf7, 0x95, 0x44, - 0xc0, 0x61, 0x6b, 0x30, 0xf0, 0x05, 0x5f, 0xa4, 0x0d, 0x33, 0x62, 0xf9, 0xa0, 0xed, 0x98, 0x2d, - 0xe2, 0xfb, 0xc6, 0x7f, 0xcb, 0x40, 0x81, 0xa2, 0x1f, 0xdf, 0x81, 0x79, 0xc2, 0x8f, 0x1c, 0x08, - 0xa5, 0x61, 0x9c, 0xf6, 0xdd, 0x9e, 0xf4, 0x1d, 0x14, 0xcb, 0x42, 0x8b, 0xdc, 0xce, 0x46, 0x33, - 0xaf, 0x45, 0x6f, 0xdf, 0x85, 0x72, 0x54, 0xb5, 0x46, 0x3a, 0x25, 0x55, 0x33, 0x7b, 0x03, 0xf2, - 0x67, 0xde, 0x58, 0x9d, 0xf3, 0x40, 0x3c, 0x92, 0x26, 0xc2, 0xe3, 0xb6, 0x88, 0x3a, 0xa8, 0xf1, - 0xf2, 0x7c, 0x22, 0xaa, 0x04, 0xc9, 0x60, 0xb6, 0x8f, 0x73, 0x29, 0x7d, 0x3c, 0x82, 0x79, 0xc1, - 0x07, 0x34, 0x07, 0x95, 0xeb, 0x37, 0xcd, 0xf7, 0x84, 0x84, 0xd7, 0x1f, 0x4e, 0x06, 0x5c, 0x3f, - 0x69, 0x43, 0x6f, 0x36, 0x09, 0x57, 0x92, 0xb5, 0xf1, 0x07, 0x19, 0xe2, 0x2f, 0xa2, 0x5c, 0x76, - 0x1f, 0xf2, 0x62, 0x7f, 0x9b, 0x3a, 0x77, 0x8f, 0xe2, 0x20, 0x04, 0x9e, 0x89, 0x18, 0x78, 0xdd, - 0xc1, 0x64, 0x94, 0x2c, 0xbd, 0x66, 0x56, 0xdc, 0xc9, 0x28, 0x3a, 0xa8, 0xfa, 0x9a, 0xea, 0xd6, - 0xd4, 0x21, 0x0f, 0xf5, 0x3e, 0x5a, 0xa6, 0xeb, 0x9a, 0x5b, 0x5c, 0x3e, 0xb1, 0x63, 0x2a, 0x29, - 0x70, 0x70, 0xca, 0x35, 0x77, 0xb8, 0x3f, 0xca, 0x42, 0x2d, 0xd1, 0x22, 0xf4, 0x0b, 0x14, 0x1b, - 0x00, 0x99, 0x91, 0xe4, 0x7c, 0x83, 0x00, 0x49, 0x41, 0x5d, 0x1b, 0xa7, 0x6c, 0x62, 0x9c, 0x22, - 0x57, 0x9c, 0x9c, 0xee, 0x8a, 0xf3, 0x08, 0xca, 0x71, 0xc4, 0x7e, 0xb2, 0x49, 0xa2, 0x3e, 0x15, - 0x0d, 0x12, 0x23, 0xc5, 0xce, 0x3b, 0x05, 0xdd, 0x79, 0xe7, 0x7b, 0x9a, 0xaf, 0xc7, 0x1c, 0x16, - 0x63, 0xa4, 0x8d, 0xe8, 0x2f, 0xc4, 0xd3, 0xc3, 0xf8, 0x18, 0x2a, 0x5a, 0xe3, 0x75, 0x9f, 0x8e, - 0x4c, 0xc2, 0xa7, 0x23, 0x8a, 0xdb, 0xca, 0xc6, 0x71, 0x5b, 0xc6, 0x6f, 0x65, 0xa1, 0x26, 0xd6, - 0x97, 0xe3, 0x9e, 0x1e, 0x7a, 0x43, 0xa7, 0x8f, 0x66, 0xa5, 0x68, 0x85, 0x49, 0x41, 0x4b, 0xad, - 0x33, 0xb9, 0xc4, 0x48, 0xce, 0xd2, 0xc3, 0x53, 0x89, 0x49, 0x47, 0xe1, 0xa9, 0x06, 0xd4, 0x04, - 0x63, 0x44, 0x03, 0x51, 0x7c, 0x9f, 0x80, 0x59, 0x39, 0xe1, 0x7c, 0xc3, 0x0e, 0x88, 0x43, 0x7e, - 0x03, 0x16, 0x05, 0x0e, 0x46, 0xe6, 0x8d, 0x9c, 0xe1, 0xd0, 0x21, 0x4c, 0x3a, 0x68, 0x6a, 0x9c, - 0x70, 0x6e, 0xda, 0x21, 0xdf, 0x13, 0x09, 0xf2, 0xfa, 0x81, 0xd2, 0xc0, 0x09, 0xec, 0xe3, 0xd8, - 0x7b, 0x33, 0xfa, 0x46, 0x3b, 0xb2, 0x7d, 0xa9, 0xd9, 0x91, 0xe9, 0x00, 0xa2, 0x32, 0xb2, 0x2f, - 0x23, 0x3b, 0xf2, 0x14, 0x25, 0x15, 0xa7, 0x29, 0xc9, 0xf8, 0x77, 0x59, 0xa8, 0x68, 0x64, 0xf9, - 0x3a, 0xbb, 0xeb, 0x9d, 0x19, 0x33, 0x60, 0x59, 0xb7, 0xf8, 0xbd, 0x95, 0xac, 0x12, 0x3d, 0x5d, - 0xe8, 0xa2, 0x03, 0x8d, 0x80, 0x6f, 0x41, 0x59, 0xac, 0xba, 0x0f, 0xf0, 0xc0, 0x55, 0x5e, 0xd3, - 0x81, 0x80, 0xc3, 0xc9, 0xb1, 0x4a, 0x7c, 0x8c, 0x89, 0x85, 0x38, 0xf1, 0xb1, 0x48, 0x7c, 0x99, - 0xcb, 0xf6, 0xb7, 0xa1, 0x2a, 0x4b, 0xc5, 0x39, 0xc5, 0xee, 0xc6, 0xab, 0x3e, 0x31, 0xdf, 0x66, - 0x85, 0xaa, 0xa3, 0xc9, 0x97, 0x19, 0x1f, 0xab, 0x8c, 0xa5, 0x57, 0x65, 0x7c, 0x4c, 0x1f, 0xc6, - 0x76, 0xe4, 0x05, 0x8f, 0x5e, 0x56, 0x8a, 0x8f, 0x3d, 0x84, 0x45, 0xc5, 0xae, 0x26, 0xae, 0xed, - 0xba, 0xde, 0xc4, 0xed, 0x73, 0x15, 0xd0, 0xc5, 0x64, 0xd2, 0x51, 0x9c, 0x62, 0x0c, 0xa2, 0x88, - 0x5f, 0xf2, 0xd6, 0x7a, 0x00, 0x05, 0x92, 0xcb, 0x49, 0xf8, 0x48, 0x67, 0x5c, 0x84, 0xc2, 0xee, - 0x43, 0x81, 0xc4, 0xf3, 0xec, 0xb5, 0xcc, 0x86, 0x10, 0x8c, 0x16, 0x30, 0x91, 0x71, 0x8f, 0x87, - 0xbe, 0xd3, 0x0f, 0xe2, 0x58, 0xb1, 0x82, 0xd0, 0x3f, 0xa9, 0xae, 0xf8, 0xe4, 0x36, 0xc6, 0x44, - 0x1d, 0x95, 0x70, 0xc4, 0xc6, 0xb4, 0x98, 0x28, 0x43, 0x8a, 0x4b, 0x43, 0x58, 0x39, 0xe6, 0xe1, - 0x05, 0xe7, 0xae, 0x2b, 0x84, 0xa1, 0x3e, 0x77, 0x43, 0xdf, 0x1e, 0x8a, 0x49, 0xa2, 0x1e, 0x3c, - 0x99, 0x29, 0x35, 0x3e, 0x03, 0xd9, 0x88, 0x33, 0x6e, 0x46, 0xf9, 0x88, 0x77, 0x2c, 0x1f, 0xa7, - 0xa5, 0xad, 0xfd, 0x1a, 0xac, 0x5d, 0x9f, 0x29, 0x25, 0x22, 0xf4, 0x7e, 0x92, 0xab, 0x44, 0x56, - 0xbf, 0xa1, 0x67, 0x87, 0xd4, 0x1a, 0x9d, 0xb3, 0xec, 0x43, 0x45, 0x4b, 0x89, 0xf7, 0xfe, 0x0c, - 0x0a, 0x77, 0xf4, 0x21, 0x76, 0x24, 0xd7, 0xf3, 0x47, 0x68, 0x65, 0x1b, 0x58, 0x71, 0xe9, 0x19, - 0x73, 0x3e, 0x86, 0x63, 0x08, 0xbc, 0xb1, 0x0e, 0xf3, 0x28, 0xd9, 0x6b, 0x1b, 0xdd, 0xcb, 0x84, - 0x41, 0x63, 0x09, 0xd8, 0x3e, 0xf1, 0x2e, 0xdd, 0x79, 0xf3, 0xbf, 0xe4, 0xa0, 0xa2, 0x81, 0xc5, - 0x6e, 0x84, 0xee, 0x7e, 0xd6, 0xc0, 0xb1, 0x47, 0x5c, 0x99, 0x34, 0x6b, 0x66, 0x0d, 0xa1, 0x5b, - 0x12, 0x28, 0xf6, 0x62, 0xfb, 0xfc, 0xd4, 0xf2, 0x26, 0xa1, 0x35, 0xe0, 0xa7, 0x3e, 0x57, 0xad, - 0xac, 0xda, 0xe7, 0xa7, 0x07, 0x93, 0x70, 0x0b, 0x61, 0x02, 0x4b, 0xf0, 0x12, 0x0d, 0x4b, 0x7a, - 0xa8, 0x8d, 0xec, 0xcb, 0x18, 0x4b, 0xba, 0x49, 0x12, 0x65, 0xe6, 0x23, 0x37, 0x49, 0xd2, 0x16, - 0xa7, 0x37, 0xd0, 0xc2, 0xec, 0x06, 0xfa, 0x2d, 0x58, 0xa1, 0x0d, 0x54, 0xb2, 0x66, 0x6b, 0x6a, - 0x25, 0x2f, 0x61, 0xaa, 0xec, 0xa4, 0x26, 0xf6, 0x36, 0x44, 0x0f, 0x14, 0x5b, 0x0a, 0x9c, 0x1f, - 0x13, 0x23, 0xcb, 0x98, 0xa2, 0x67, 0xb2, 0xf0, 0xae, 0xf3, 0x63, 0x2e, 0x30, 0xd1, 0x17, 0x46, - 0xc7, 0x94, 0x01, 0x19, 0x23, 0xc7, 0x9d, 0xc6, 0xb4, 0x2f, 0x93, 0x98, 0x65, 0x89, 0x69, 0x5f, - 0xea, 0x98, 0x4f, 0x60, 0x75, 0xc4, 0x07, 0x8e, 0x9d, 0x2c, 0xd6, 0x8a, 0x05, 0xb7, 0x25, 0x4a, - 0xd6, 0xf2, 0x74, 0x49, 0x71, 0x17, 0xa3, 0xf1, 0x63, 0x6f, 0x74, 0xec, 0x90, 0xcc, 0x42, 0xde, - 0x39, 0x79, 0xb3, 0xee, 0x4e, 0x46, 0x3f, 0x44, 0xb0, 0xc8, 0x12, 0x18, 0x35, 0xa8, 0x74, 0x43, - 0x6f, 0xac, 0xa6, 0xb9, 0x0e, 0x55, 0xfa, 0x94, 0x51, 0x92, 0xb7, 0xe0, 0x26, 0xb2, 0x84, 0x9e, - 0x37, 0xf6, 0x86, 0xde, 0xe9, 0x55, 0xe2, 0x1c, 0xef, 0x3f, 0x66, 0x60, 0x31, 0x91, 0x2a, 0xd9, - 0xeb, 0xb7, 0x88, 0x9f, 0x45, 0xa1, 0x6e, 0xb4, 0x06, 0x17, 0xb4, 0x35, 0x48, 0x88, 0xc4, 0xcc, - 0x54, 0xf8, 0x5b, 0x2b, 0xbe, 0xa2, 0x41, 0x65, 0x24, 0x96, 0xd2, 0x9c, 0x65, 0x29, 0x32, 0xbf, - 0xba, 0xbc, 0x41, 0x15, 0xf1, 0x4b, 0x32, 0x68, 0x66, 0x20, 0xbb, 0x9c, 0x4b, 0x86, 0x05, 0xe8, - 0x67, 0x7e, 0xaa, 0x05, 0xf1, 0x41, 0x60, 0x60, 0xfc, 0xf3, 0x0c, 0x40, 0xdc, 0x3a, 0x0c, 0x4c, - 0x88, 0xe4, 0x16, 0xba, 0xfd, 0x4c, 0x93, 0x51, 0xde, 0x84, 0x6a, 0xe4, 0x9f, 0x1c, 0x4b, 0x42, - 0x15, 0x05, 0x13, 0xe2, 0xd0, 0xbb, 0x30, 0x7f, 0x3a, 0xf4, 0x8e, 0x51, 0x62, 0x95, 0x72, 0x0b, - 0x79, 0xa7, 0xd5, 0x09, 0xac, 0xa4, 0x91, 0x58, 0x6e, 0xca, 0xa7, 0xba, 0x30, 0xeb, 0x52, 0x90, - 0xf1, 0xdb, 0xd9, 0xc8, 0x51, 0x33, 0x1e, 0x89, 0x97, 0xab, 0x77, 0x3f, 0x8b, 0xe7, 0xcc, 0xcb, - 0x8c, 0x89, 0x1f, 0x43, 0xdd, 0xa7, 0x4d, 0x49, 0xed, 0x58, 0xf9, 0x97, 0xec, 0x58, 0x35, 0x3f, - 0x21, 0xe9, 0xbc, 0x07, 0x0d, 0x7b, 0x70, 0xce, 0xfd, 0xd0, 0xc1, 0xd3, 0x7a, 0x94, 0x8f, 0xa5, - 0x6b, 0xa4, 0x06, 0x47, 0x41, 0xf4, 0x5d, 0x98, 0x97, 0x91, 0xbb, 0x11, 0xa6, 0xbc, 0x0b, 0x28, - 0x06, 0x0b, 0x44, 0xe3, 0x5f, 0x2a, 0xcf, 0xd0, 0xe4, 0xec, 0xbe, 0x7c, 0x54, 0xf4, 0x1e, 0x66, - 0x67, 0xcd, 0xa5, 0x92, 0x90, 0xa4, 0x11, 0x40, 0xf2, 0x23, 0x02, 0x4a, 0x13, 0x40, 0x72, 0x58, - 0xf3, 0xaf, 0x33, 0xac, 0xc6, 0x7f, 0xca, 0x40, 0x71, 0xc7, 0x1b, 0xef, 0x38, 0xe4, 0x9a, 0x8f, - 0xcb, 0x24, 0xb2, 0x51, 0xcd, 0x89, 0x4f, 0x74, 0xf3, 0x79, 0x49, 0x80, 0x5a, 0xaa, 0x98, 0x57, - 0x4b, 0x8a, 0x79, 0xdf, 0x83, 0x5b, 0x68, 0x02, 0xf4, 0xbd, 0xb1, 0xe7, 0x8b, 0xa5, 0x6a, 0x0f, - 0x49, 0xdc, 0xf3, 0xdc, 0xf0, 0x4c, 0xf1, 0xce, 0x9b, 0x27, 0x9c, 0x1f, 0x6a, 0x18, 0x7b, 0x11, - 0x02, 0x86, 0x80, 0x0e, 0xc3, 0x73, 0x8b, 0x34, 0x74, 0x29, 0x8f, 0x12, 0x47, 0x9d, 0x17, 0x09, - 0x6d, 0x84, 0xa3, 0x44, 0x6a, 0x7c, 0x07, 0xca, 0xd1, 0x61, 0x0f, 0x7b, 0x1f, 0xca, 0x67, 0xde, - 0x58, 0x9e, 0x08, 0x65, 0x12, 0x41, 0x7c, 0xb2, 0xd7, 0x66, 0xe9, 0x8c, 0x7e, 0x04, 0xc6, 0x9f, - 0x15, 0xa1, 0xd8, 0x71, 0xcf, 0x3d, 0xa7, 0x8f, 0xbe, 0xa5, 0x23, 0x3e, 0xf2, 0xd4, 0xf5, 0x01, - 0xe2, 0x37, 0x7a, 0x62, 0xc5, 0x37, 0xfa, 0xe4, 0xa4, 0x27, 0x56, 0x74, 0x97, 0xcf, 0x32, 0xcc, - 0xf9, 0xfa, 0x95, 0x3c, 0x05, 0x1f, 0xbd, 0xdd, 0xa3, 0xfd, 0xb2, 0xa0, 0x5d, 0xbf, 0x20, 0xca, - 0xa2, 0xab, 0x62, 0x70, 0xc8, 0x28, 0x9c, 0xb3, 0x8c, 0x10, 0x1c, 0xb0, 0xdb, 0x50, 0x94, 0x31, - 0x73, 0x14, 0x81, 0x44, 0xee, 0xe9, 0x12, 0x84, 0xd4, 0xe0, 0x73, 0x32, 0xe1, 0x46, 0x82, 0x6c, - 0xce, 0xac, 0x2a, 0xe0, 0x96, 0xa0, 0xb5, 0xbb, 0x50, 0x21, 0x7c, 0x42, 0x29, 0x49, 0x97, 0x4c, - 0x04, 0x21, 0x42, 0xca, 0xcd, 0x56, 0xe5, 0xd4, 0x9b, 0xad, 0xd0, 0x79, 0x38, 0xe2, 0xb2, 0xd4, - 0x45, 0xa0, 0xfb, 0x8c, 0x34, 0xb8, 0xba, 0xd6, 0x4d, 0x9e, 0xa9, 0x50, 0x74, 0xb3, 0x3a, 0x53, - 0x79, 0x0b, 0x6a, 0x27, 0xf6, 0x70, 0x78, 0x6c, 0xf7, 0x5f, 0xd0, 0x51, 0x40, 0x95, 0x4e, 0x3f, - 0x15, 0x10, 0xcf, 0x02, 0xee, 0x42, 0x45, 0x9b, 0x65, 0xf4, 0xb7, 0xcc, 0x9b, 0x10, 0xcf, 0xef, - 0xf4, 0x09, 0x5f, 0xfd, 0x35, 0x4e, 0xf8, 0x34, 0xbf, 0xd3, 0xf9, 0xa4, 0xdf, 0xe9, 0x2d, 0xe4, - 0xa6, 0xd2, 0xc1, 0xb0, 0x41, 0x97, 0xe7, 0xd8, 0x83, 0x01, 0x3a, 0x18, 0xd2, 0x4d, 0x95, 0x38, - 0x78, 0x94, 0xbe, 0x40, 0xba, 0x04, 0xc1, 0x08, 0xe5, 0x0e, 0x1d, 0x53, 0x8f, 0x6d, 0x67, 0x80, - 0x21, 0x06, 0x74, 0x7a, 0x50, 0xb4, 0x47, 0xe1, 0xa1, 0xed, 0x0c, 0xd8, 0x3d, 0xa8, 0xaa, 0x64, - 0xdc, 0x1d, 0x17, 0x69, 0xfc, 0x65, 0xb2, 0xd8, 0x13, 0x0d, 0xa8, 0x45, 0x18, 0xa3, 0x38, 0x44, - 0xb9, 0x22, 0x51, 0x90, 0x0e, 0x3e, 0x40, 0x9f, 0x9e, 0x90, 0x63, 0x20, 0x72, 0xfd, 0xf1, 0x2d, - 0xd9, 0x57, 0x49, 0xa5, 0xea, 0x3f, 0x19, 0xc7, 0x08, 0x53, 0x08, 0x77, 0x64, 0xa3, 0x5b, 0x49, - 0xc8, 0xbf, 0x12, 0x15, 0x6d, 0x74, 0x84, 0xc0, 0xbe, 0xa3, 0xe9, 0xaf, 0x4d, 0x44, 0xbe, 0x3d, - 0x55, 0xfe, 0x75, 0x11, 0x56, 0x77, 0x00, 0x9c, 0x40, 0xec, 0x32, 0x01, 0x77, 0x07, 0x18, 0x53, - 0x5c, 0x32, 0xcb, 0x4e, 0xf0, 0x8c, 0x00, 0x5f, 0xad, 0x62, 0xdb, 0x82, 0xaa, 0xde, 0x4d, 0x56, - 0x82, 0xfc, 0xc1, 0x61, 0x7b, 0xbf, 0x71, 0x83, 0x55, 0xa0, 0xd8, 0x6d, 0xf7, 0x7a, 0xbb, 0x68, - 0xe9, 0xab, 0x42, 0x29, 0x0a, 0x68, 0xcc, 0x8a, 0xaf, 0xd6, 0xe6, 0x66, 0xfb, 0xb0, 0xd7, 0xde, - 0x6a, 0xe4, 0x7e, 0x90, 0x2f, 0x65, 0x1b, 0x39, 0xe3, 0xcf, 0x73, 0x50, 0xd1, 0x46, 0xe1, 0xe5, - 0xcc, 0xf8, 0x0e, 0x00, 0x6a, 0x92, 0xb1, 0xff, 0x69, 0xde, 0x2c, 0x0b, 0x08, 0x4d, 0xbe, 0x6e, - 0xa3, 0xc8, 0xd1, 0xad, 0x4c, 0xca, 0x46, 0xf1, 0x16, 0xd4, 0xe8, 0x82, 0x23, 0xdd, 0x5e, 0x5b, - 0x30, 0xab, 0x04, 0x94, 0xac, 0x1a, 0x23, 0xa2, 0x11, 0x09, 0x63, 0xe5, 0xe4, 0x75, 0x27, 0x04, - 0xc2, 0x68, 0x39, 0x0c, 0x75, 0x0c, 0xbc, 0xe1, 0x39, 0x27, 0x0c, 0x92, 0x08, 0x2b, 0x12, 0xd6, - 0x93, 0xb1, 0xdd, 0x92, 0x1f, 0x6a, 0x21, 0xb9, 0x05, 0xb3, 0x4a, 0x40, 0x59, 0xd1, 0x37, 0x14, - 0x01, 0x95, 0x90, 0x80, 0x56, 0x67, 0xa9, 0x21, 0x41, 0x3c, 0xbb, 0x33, 0xc7, 0x88, 0x65, 0x24, - 0x8c, 0xaf, 0xcd, 0xe6, 0x7b, 0xf5, 0x71, 0x22, 0x7b, 0x1f, 0xd8, 0x68, 0x3c, 0xb6, 0x52, 0x0e, - 0xf8, 0xf2, 0xe6, 0xfc, 0x68, 0x3c, 0xee, 0x69, 0xe7, 0x5f, 0x5f, 0xc1, 0xd9, 0xe3, 0xe7, 0xc0, - 0x5a, 0x62, 0x01, 0x63, 0x13, 0x23, 0x55, 0x2c, 0x66, 0xcb, 0x19, 0x9d, 0x2d, 0xa7, 0x70, 0xbf, - 0x6c, 0x2a, 0xf7, 0x7b, 0x19, 0x9f, 0x30, 0xb6, 0xa1, 0x72, 0xa8, 0x5d, 0x9f, 0x76, 0x4f, 0xec, - 0x10, 0xea, 0xe2, 0x34, 0xda, 0x3b, 0xe8, 0x4c, 0xd1, 0x97, 0xf7, 0xa5, 0x69, 0xad, 0xc9, 0x6a, - 0xad, 0x31, 0xfe, 0x59, 0x86, 0xae, 0xa6, 0x89, 0x1a, 0x1f, 0xdf, 0xd8, 0xa6, 0xcc, 0x6f, 0x71, - 0xe4, 0x7c, 0x45, 0x99, 0xdd, 0x64, 0xd0, 0x3b, 0x36, 0xcd, 0xf2, 0x4e, 0x4e, 0x02, 0xae, 0x7c, - 0x3c, 0x2a, 0x08, 0x3b, 0x40, 0x90, 0x12, 0xbe, 0x85, 0x84, 0xef, 0x50, 0xf9, 0x81, 0x74, 0xec, - 0x10, 0xc2, 0xf7, 0x9e, 0x7d, 0x29, 0x6b, 0x0d, 0x84, 0x08, 0x22, 0xed, 0x03, 0x2a, 0xf2, 0x35, - 0xfa, 0x36, 0xfe, 0xb1, 0x0c, 0xee, 0x9f, 0x1e, 0xdf, 0x07, 0x50, 0x8a, 0x4a, 0x4d, 0xee, 0xb0, - 0x0a, 0x33, 0x4a, 0x17, 0xfb, 0x38, 0x1e, 0x86, 0x24, 0x5a, 0x4c, 0x8b, 0x0b, 0x6d, 0x3c, 0x1d, - 0xad, 0xd5, 0x5f, 0x07, 0x76, 0xe2, 0xf8, 0xd3, 0xc8, 0xb4, 0xd8, 0x1a, 0x98, 0xa2, 0x61, 0x1b, - 0x47, 0xb0, 0xa8, 0xb8, 0x84, 0xa6, 0x11, 0x24, 0x27, 0x2f, 0xf3, 0x0a, 0x26, 0x9f, 0x9d, 0x61, - 0xf2, 0xc6, 0x4f, 0xf3, 0x50, 0x54, 0x57, 0x11, 0xa6, 0x5d, 0x9f, 0x57, 0x4e, 0x5e, 0x9f, 0xd7, - 0x4c, 0x5c, 0xb5, 0x84, 0x53, 0x2f, 0xf7, 0xfb, 0x77, 0xa7, 0xb7, 0x6c, 0xcd, 0x56, 0x91, 0xd8, - 0xb6, 0x57, 0x20, 0x3f, 0xb6, 0xc3, 0x33, 0x3c, 0x97, 0x24, 0xe2, 0xc1, 0x6f, 0x65, 0xc3, 0x28, - 0x24, 0x6d, 0x18, 0x69, 0x57, 0x0d, 0x92, 0x48, 0x3a, 0x73, 0xd5, 0xe0, 0x2d, 0x20, 0xf9, 0x42, - 0x73, 0x71, 0x2b, 0x21, 0x40, 0xec, 0x45, 0x49, 0x71, 0xa4, 0x34, 0x2d, 0x8e, 0xbc, 0xb6, 0xa8, - 0xf0, 0x2d, 0x98, 0xa3, 0x6b, 0x3a, 0x64, 0x84, 0xaf, 0xda, 0x50, 0xe4, 0x18, 0xaa, 0xff, 0x14, - 0xf7, 0x60, 0x4a, 0x5c, 0xfd, 0xde, 0xae, 0x4a, 0xe2, 0xde, 0x2e, 0xdd, 0xb6, 0x52, 0x4d, 0xda, - 0x56, 0xee, 0x43, 0x23, 0x1a, 0x50, 0x3c, 0xa9, 0x74, 0x03, 0x19, 0x3f, 0x58, 0x57, 0x70, 0xc1, - 0x25, 0xf7, 0x83, 0x78, 0x43, 0xac, 0x27, 0x36, 0x44, 0xc1, 0xc3, 0x5a, 0x61, 0xc8, 0x47, 0xe3, - 0x50, 0x6e, 0x88, 0x18, 0x61, 0xa4, 0x37, 0x30, 0x19, 0xfb, 0x5e, 0x83, 0x72, 0x67, 0xdf, 0xda, - 0xde, 0xed, 0x3c, 0xdd, 0xe9, 0x35, 0x32, 0xe2, 0xb3, 0x7b, 0xb4, 0xb9, 0xd9, 0x6e, 0x6f, 0xe1, - 0x8e, 0x03, 0x30, 0xb7, 0xdd, 0xea, 0x88, 0xdd, 0x27, 0x67, 0xfc, 0x6e, 0x16, 0x2a, 0x5a, 0xf1, - 0xec, 0x49, 0x34, 0x2a, 0x74, 0xb5, 0xd3, 0x9d, 0xd9, 0x26, 0xac, 0x2b, 0x56, 0xac, 0x0d, 0x4b, - 0x74, 0xb1, 0x62, 0xf6, 0xda, 0x8b, 0x15, 0xd9, 0x3b, 0x30, 0x6f, 0x53, 0x09, 0xd1, 0x28, 0xc8, - 0x53, 0x78, 0x09, 0x96, 0x83, 0x80, 0x8e, 0x9d, 0xf1, 0x7e, 0x22, 0xf0, 0xf2, 0xca, 0x97, 0x32, - 0xda, 0x52, 0x70, 0xb0, 0x8a, 0x27, 0xb6, 0x33, 0x9c, 0xf8, 0x5c, 0x5a, 0xcd, 0xa3, 0x9d, 0x99, - 0xa0, 0xa6, 0x4a, 0x36, 0x3e, 0x04, 0x88, 0xdb, 0x9c, 0x1c, 0x9c, 0x1b, 0xc9, 0xc1, 0xc9, 0x68, - 0x83, 0x93, 0x35, 0xb6, 0x88, 0x8d, 0xc8, 0x81, 0x8e, 0x8e, 0xdd, 0xbe, 0x01, 0xea, 0x20, 0xd0, - 0x42, 0xf7, 0xea, 0xf1, 0x90, 0x87, 0xea, 0x96, 0x80, 0x05, 0x99, 0xd2, 0x89, 0x12, 0xd4, 0xa5, - 0x1d, 0x71, 0x29, 0x31, 0x37, 0x92, 0x24, 0x39, 0xcd, 0x8d, 0x24, 0xaa, 0x19, 0xa5, 0x1b, 0x6b, - 0xd0, 0xdc, 0xe2, 0xa2, 0xb4, 0xd6, 0x70, 0x38, 0xd5, 0x1c, 0xe3, 0x16, 0xdc, 0x4c, 0x49, 0x93, - 0x87, 0x10, 0x9f, 0xc0, 0x72, 0x8b, 0x2e, 0x04, 0xf8, 0xaa, 0x22, 0xff, 0x8c, 0x26, 0xac, 0x4c, - 0x17, 0x29, 0x2b, 0xdb, 0x86, 0x85, 0x2d, 0x7e, 0x3c, 0x39, 0xdd, 0xe5, 0xe7, 0x71, 0x45, 0x0c, - 0xf2, 0xc1, 0x99, 0x77, 0x21, 0xc7, 0x07, 0x7f, 0xa3, 0x97, 0xa1, 0xc0, 0xb1, 0x82, 0x31, 0xef, - 0xab, 0x83, 0x68, 0x84, 0x74, 0xc7, 0xbc, 0x6f, 0x3c, 0x01, 0xa6, 0x97, 0x23, 0xc7, 0x4b, 0x68, - 0x09, 0x93, 0x63, 0x2b, 0xb8, 0x0a, 0x42, 0x3e, 0x52, 0x11, 0x6f, 0x10, 0x4c, 0x8e, 0xbb, 0x04, - 0x31, 0xde, 0x85, 0xea, 0xa1, 0x7d, 0x65, 0xf2, 0xcf, 0x65, 0x60, 0xd9, 0x2a, 0x14, 0xc7, 0xf6, - 0x95, 0x60, 0x03, 0x91, 0x4d, 0x0a, 0x93, 0x8d, 0x3f, 0xcc, 0xc3, 0x1c, 0x61, 0xb2, 0x7b, 0x74, - 0xb9, 0xaf, 0xe3, 0xe2, 0x32, 0x54, 0x8c, 0x52, 0x03, 0xcd, 0xf0, 0xd2, 0xec, 0x2c, 0x2f, 0x95, - 0x07, 0x68, 0xea, 0x52, 0x23, 0x65, 0x3d, 0x70, 0x27, 0x23, 0x75, 0x93, 0x51, 0x32, 0x2a, 0x3e, - 0x1f, 0x5f, 0xde, 0x4c, 0x21, 0xc3, 0x49, 0xfb, 0x6e, 0xac, 0x8b, 0x50, 0xeb, 0xd4, 0x16, 0x21, - 0xd9, 0xa5, 0x0e, 0x4a, 0x55, 0x78, 0x8a, 0x2a, 0x5a, 0x32, 0xa9, 0xf0, 0xcc, 0x28, 0x36, 0xa5, - 0x57, 0x2b, 0x36, 0x74, 0xb2, 0xf6, 0x12, 0xc5, 0x06, 0x5e, 0x43, 0xb1, 0x79, 0x0d, 0xdb, 0xea, - 0x4d, 0x28, 0xe1, 0xbe, 0xaf, 0x71, 0x4f, 0xb1, 0xdf, 0x0b, 0xee, 0xf9, 0x6d, 0x4d, 0xf4, 0x27, - 0xc7, 0x8e, 0x5b, 0xf1, 0x32, 0x31, 0xf9, 0xe7, 0xbf, 0x18, 0x9b, 0xd5, 0x73, 0x28, 0x4a, 0xa8, - 0x20, 0x68, 0xd7, 0x1e, 0xa9, 0x7b, 0xe1, 0xf0, 0xb7, 0x18, 0x36, 0xbc, 0xcc, 0xea, 0xf3, 0x89, - 0xe3, 0xf3, 0x81, 0xba, 0xf0, 0xc7, 0xc1, 0x35, 0x2a, 0x20, 0xa2, 0x83, 0x42, 0x0d, 0x71, 0xbd, - 0x0b, 0x57, 0x5e, 0xf7, 0x51, 0x74, 0x82, 0x67, 0xe2, 0xd3, 0x60, 0xd0, 0xc0, 0x9b, 0x21, 0xc7, - 0x9e, 0xaf, 0x36, 0x27, 0xe3, 0xa7, 0x19, 0x68, 0xc8, 0xd5, 0x15, 0xa5, 0xe9, 0x5a, 0x40, 0xe1, - 0x3a, 0x3f, 0x84, 0x97, 0x5f, 0xdf, 0x63, 0x40, 0x0d, 0x0f, 0x3f, 0xa2, 0x9d, 0x8a, 0x0e, 0x6f, - 0x2a, 0x02, 0xb8, 0x2d, 0x77, 0xab, 0x37, 0xa0, 0xa2, 0x7c, 0xa0, 0x47, 0xce, 0x50, 0xdd, 0xd3, - 0x4e, 0x4e, 0xd0, 0x7b, 0xce, 0x50, 0x6d, 0x74, 0xbe, 0x2d, 0xa3, 0x77, 0x33, 0xb8, 0xd1, 0x99, - 0x76, 0xc8, 0x8d, 0x7f, 0x93, 0x81, 0x05, 0xad, 0x2b, 0x72, 0xdd, 0x7e, 0x04, 0xd5, 0xe8, 0x4a, - 0x56, 0x1e, 0x49, 0x5e, 0xab, 0x49, 0x46, 0x13, 0x67, 0xab, 0xf4, 0x23, 0x48, 0x20, 0x1a, 0x33, - 0xb0, 0xaf, 0xc8, 0x51, 0x77, 0x32, 0x52, 0xca, 0xcd, 0xc0, 0xbe, 0xda, 0xe6, 0xbc, 0x3b, 0x19, - 0x09, 0xd5, 0xf5, 0x82, 0xf3, 0x17, 0x11, 0x02, 0xc9, 0x5c, 0x20, 0x60, 0x12, 0xc3, 0x80, 0xda, - 0xc8, 0x73, 0xc3, 0xb3, 0x08, 0x45, 0x4a, 0x9d, 0x08, 0x24, 0x1c, 0xe3, 0x4f, 0xb3, 0xb0, 0x48, - 0x47, 0x6c, 0xf2, 0x68, 0x53, 0xb2, 0xae, 0x26, 0xcc, 0xd1, 0x69, 0x23, 0x31, 0xaf, 0x9d, 0x1b, - 0xa6, 0xfc, 0x66, 0xdf, 0x7a, 0xcd, 0x63, 0x41, 0x15, 0x20, 0x7c, 0xcd, 0xf0, 0xe7, 0x66, 0x87, - 0xff, 0xfa, 0xe1, 0x4d, 0x33, 0x74, 0x16, 0xd2, 0x0c, 0x9d, 0xaf, 0x63, 0x5e, 0x9c, 0x09, 0x65, - 0x2d, 0x4a, 0x1c, 0x2d, 0x94, 0xf5, 0x09, 0xac, 0x26, 0x70, 0x90, 0x5b, 0x3b, 0x27, 0x0e, 0x57, - 0xb7, 0xa9, 0x2c, 0x69, 0xd8, 0x5d, 0x95, 0xb6, 0x51, 0x84, 0x42, 0xd0, 0xf7, 0xc6, 0xdc, 0x58, - 0x81, 0xa5, 0xe4, 0xa8, 0xca, 0x6d, 0xe2, 0xf7, 0x32, 0xd0, 0x94, 0x6e, 0x29, 0x8e, 0x7b, 0xba, - 0xe3, 0x04, 0xa1, 0xe7, 0x47, 0x57, 0x97, 0xde, 0x01, 0x08, 0x42, 0xdb, 0x97, 0xda, 0xa6, 0xbc, - 0x3f, 0x04, 0x21, 0xa8, 0x49, 0xde, 0x84, 0x12, 0x77, 0x07, 0x94, 0x48, 0xd4, 0x50, 0xe4, 0xee, - 0x40, 0xe9, 0xa1, 0x33, 0xf2, 0x77, 0x2d, 0xa9, 0x5e, 0xc8, 0x70, 0x7e, 0x31, 0x3a, 0xfc, 0x1c, - 0x37, 0xde, 0x7c, 0x14, 0xce, 0xbf, 0x67, 0x5f, 0xa2, 0x93, 0x67, 0x60, 0xfc, 0x83, 0x2c, 0xcc, - 0xc7, 0xed, 0xa3, 0xbb, 0x40, 0x5e, 0x7e, 0xab, 0xc9, 0x3d, 0x49, 0x0e, 0x8e, 0x90, 0xdf, 0xb5, - 0x83, 0xc7, 0x12, 0x2d, 0xce, 0x8e, 0xcb, 0x0c, 0xa8, 0x28, 0x0c, 0x6f, 0x12, 0x6a, 0x37, 0x08, - 0x96, 0x09, 0xe5, 0x60, 0x12, 0x0a, 0x85, 0x4b, 0x68, 0x9e, 0x8e, 0x2b, 0x55, 0x9e, 0x82, 0x3d, - 0x0a, 0x3b, 0xf8, 0x30, 0x81, 0x00, 0x8b, 0x6c, 0x34, 0x91, 0x02, 0x4b, 0xe0, 0x37, 0x48, 0xce, - 0xa6, 0x99, 0x43, 0x19, 0x5b, 0x17, 0x42, 0xe9, 0x8e, 0xe6, 0x48, 0x08, 0x7d, 0x03, 0x2a, 0x54, - 0x78, 0x1c, 0xb9, 0x9c, 0x37, 0xcb, 0x58, 0x03, 0xa6, 0xcb, 0x43, 0x20, 0x6f, 0x92, 0x50, 0x7d, - 0x81, 0xaa, 0x42, 0xaf, 0x8f, 0xbf, 0x9d, 0x81, 0x9b, 0x29, 0xd3, 0x26, 0x57, 0xf9, 0x26, 0x2c, - 0x9c, 0x44, 0x89, 0x6a, 0x74, 0x69, 0xa9, 0xaf, 0x28, 0xb6, 0x9a, 0x1c, 0x53, 0xb3, 0x71, 0x92, - 0x04, 0xc4, 0x4a, 0x17, 0xcd, 0x60, 0x22, 0x2e, 0x1e, 0x95, 0x2e, 0x9a, 0x46, 0xd2, 0x77, 0x0e, - 0x61, 0xad, 0x7d, 0x29, 0x38, 0xc6, 0xa6, 0xfe, 0xb2, 0x86, 0x22, 0xa3, 0xe4, 0x01, 0x73, 0xe6, - 0xb5, 0x0e, 0x98, 0x07, 0x14, 0x48, 0x1b, 0x95, 0xf5, 0xb3, 0x14, 0x82, 0x1b, 0xa8, 0xc8, 0x43, - 0x2f, 0x83, 0xa8, 0x00, 0xf9, 0x7e, 0xf4, 0x22, 0x88, 0x11, 0xc0, 0xfc, 0xde, 0x64, 0x18, 0x3a, - 0xf1, 0x23, 0x21, 0xec, 0x5b, 0x32, 0x0f, 0xd6, 0xa3, 0x46, 0x2d, 0xb5, 0x22, 0x88, 0x2a, 0xc2, - 0xc1, 0x1a, 0x89, 0x82, 0xac, 0xd9, 0xfa, 0xe6, 0x47, 0xc9, 0x1a, 0x8c, 0x9b, 0xb0, 0x1a, 0x7f, - 0xd1, 0xb0, 0xa9, 0xad, 0xe6, 0x9f, 0x66, 0xc8, 0xa3, 0x3c, 0xf9, 0x60, 0x09, 0x6b, 0xc3, 0x62, - 0xe0, 0xb8, 0xa7, 0x43, 0xae, 0x17, 0x1f, 0xc8, 0x41, 0x58, 0x4e, 0xb6, 0x4d, 0x3e, 0x6a, 0x62, - 0x2e, 0x50, 0x8e, 0xb8, 0xb4, 0x80, 0x6d, 0x5c, 0xd7, 0xc8, 0x98, 0x2c, 0xa6, 0x46, 0x63, 0xb6, - 0xf1, 0x1d, 0xa8, 0x27, 0x2b, 0x62, 0xdf, 0x96, 0xf1, 0xe7, 0x71, 0xab, 0x72, 0x53, 0xc1, 0xb9, - 0x31, 0x41, 0x54, 0xe2, 0xb1, 0x0f, 0x8c, 0xbf, 0x9b, 0x81, 0xa6, 0xc9, 0x05, 0xe5, 0x6a, 0xad, - 0x54, 0x34, 0xf3, 0xd1, 0x4c, 0xa9, 0xd7, 0xf7, 0x55, 0x85, 0xb5, 0xab, 0x16, 0x7d, 0xfd, 0xda, - 0xc9, 0xd8, 0xb9, 0x31, 0xd3, 0xa3, 0x8d, 0x12, 0xcc, 0x11, 0x8a, 0xb1, 0x0a, 0xcb, 0xb2, 0x3d, - 0xaa, 0x2d, 0xb1, 0xf5, 0x30, 0x51, 0x63, 0xc2, 0x7a, 0xb8, 0x06, 0x4d, 0x0a, 0x34, 0xd5, 0x3b, - 0x21, 0x33, 0x6e, 0x01, 0xdb, 0xb3, 0xfb, 0xb6, 0xef, 0x79, 0xee, 0x21, 0xf7, 0xa5, 0x7f, 0x2e, - 0x4a, 0x98, 0x68, 0x5c, 0x53, 0xa2, 0x30, 0x7d, 0xa9, 0x7b, 0x53, 0x3d, 0x57, 0xb9, 0x23, 0xd1, - 0x97, 0x61, 0xc2, 0xe2, 0x86, 0xfd, 0x82, 0xab, 0x92, 0xd4, 0x10, 0x7d, 0x0c, 0x95, 0x71, 0x54, - 0xa8, 0x1a, 0x77, 0x75, 0x3f, 0xc6, 0x6c, 0xb5, 0xa6, 0x8e, 0x6d, 0x3c, 0x86, 0xa5, 0x64, 0x99, - 0x92, 0x75, 0xac, 0x41, 0x69, 0x24, 0x61, 0xb2, 0x75, 0xd1, 0xb7, 0xf1, 0x3b, 0x25, 0x28, 0x4a, - 0x7d, 0x8e, 0xad, 0x43, 0xbe, 0xaf, 0x5c, 0xc2, 0xe2, 0x6b, 0x97, 0x64, 0xaa, 0xfa, 0xbf, 0x89, - 0x8e, 0x61, 0x02, 0x8f, 0x7d, 0x0c, 0xf5, 0xa4, 0x55, 0x74, 0x2a, 0x8c, 0x3d, 0x69, 0xce, 0xac, - 0xf5, 0xa7, 0xec, 0x5f, 0xe5, 0x78, 0x73, 0x24, 0x99, 0xa1, 0x74, 0xa6, 0xed, 0x9e, 0x9e, 0x2b, - 0xe4, 0xed, 0xe0, 0xcc, 0xb6, 0x1e, 0x3f, 0xf9, 0x50, 0xc6, 0xb1, 0x57, 0x10, 0xd8, 0x3d, 0xb3, - 0x1f, 0x3f, 0xf9, 0x70, 0x5a, 0x92, 0x96, 0x51, 0xec, 0x9a, 0x24, 0xbd, 0x04, 0x05, 0xba, 0x20, - 0x94, 0x7c, 0x7b, 0xe8, 0x83, 0x3d, 0x82, 0x25, 0xa9, 0xb6, 0x5a, 0xd2, 0x0b, 0x9b, 0xb8, 0x60, - 0x89, 0x02, 0xdf, 0x64, 0x5a, 0x17, 0x93, 0xe8, 0x6c, 0x68, 0x05, 0xe6, 0xce, 0xe2, 0xdb, 0x5e, - 0x6b, 0xa6, 0xfc, 0x32, 0xfe, 0xb4, 0x00, 0x15, 0x6d, 0x50, 0x58, 0x15, 0x4a, 0x66, 0xbb, 0xdb, - 0x36, 0x3f, 0x6d, 0x6f, 0x35, 0x6e, 0xb0, 0xfb, 0xf0, 0x76, 0x67, 0x7f, 0xf3, 0xc0, 0x34, 0xdb, - 0x9b, 0x3d, 0xeb, 0xc0, 0xb4, 0xd4, 0xe5, 0x5f, 0x87, 0xad, 0xe7, 0x7b, 0xed, 0xfd, 0x9e, 0xb5, - 0xd5, 0xee, 0xb5, 0x3a, 0xbb, 0xdd, 0x46, 0x86, 0xdd, 0x86, 0x66, 0x8c, 0xa9, 0x92, 0x5b, 0x7b, - 0x07, 0x47, 0xfb, 0xbd, 0x46, 0x96, 0xdd, 0x85, 0x5b, 0xdb, 0x9d, 0xfd, 0xd6, 0xae, 0x15, 0xe3, - 0x6c, 0xee, 0xf6, 0x3e, 0xb5, 0xda, 0xbf, 0x72, 0xd8, 0x31, 0x9f, 0x37, 0x72, 0x69, 0x08, 0x42, - 0x19, 0x57, 0x25, 0xe4, 0xd9, 0x4d, 0x58, 0x26, 0x04, 0xca, 0x62, 0xf5, 0x0e, 0x0e, 0xac, 0xee, - 0xc1, 0xc1, 0x7e, 0xa3, 0xc0, 0x16, 0xa0, 0xd6, 0xd9, 0xff, 0xb4, 0xb5, 0xdb, 0xd9, 0xb2, 0xcc, - 0x76, 0x6b, 0x77, 0xaf, 0x31, 0xc7, 0x16, 0x61, 0x7e, 0x1a, 0xaf, 0x28, 0x8a, 0x50, 0x78, 0x07, - 0xfb, 0x9d, 0x83, 0x7d, 0xeb, 0xd3, 0xb6, 0xd9, 0xed, 0x1c, 0xec, 0x37, 0x4a, 0x6c, 0x05, 0x58, - 0x32, 0x69, 0x67, 0xaf, 0xb5, 0xd9, 0x28, 0xb3, 0x65, 0x58, 0x48, 0xc2, 0x9f, 0xb5, 0x9f, 0x37, - 0x80, 0x35, 0x61, 0x89, 0x1a, 0x66, 0x6d, 0xb4, 0x77, 0x0f, 0x3e, 0xb3, 0xf6, 0x3a, 0xfb, 0x9d, - 0xbd, 0xa3, 0xbd, 0x46, 0x05, 0xaf, 0x23, 0x6c, 0xb7, 0xad, 0xce, 0x7e, 0xf7, 0x68, 0x7b, 0xbb, - 0xb3, 0xd9, 0x69, 0xef, 0xf7, 0x1a, 0x55, 0xaa, 0x39, 0xad, 0xe3, 0x35, 0x91, 0x41, 0x86, 0x6a, - 0x58, 0x5b, 0x9d, 0x6e, 0x6b, 0x63, 0xb7, 0xbd, 0xd5, 0xa8, 0xb3, 0x3b, 0x70, 0xb3, 0xd7, 0xde, - 0x3b, 0x3c, 0x30, 0x5b, 0xe6, 0x73, 0x15, 0xca, 0x61, 0x6d, 0xb7, 0x3a, 0xbb, 0x47, 0x66, 0xbb, - 0x31, 0xcf, 0xde, 0x84, 0x3b, 0x66, 0xfb, 0x93, 0xa3, 0x8e, 0xd9, 0xde, 0xb2, 0xf6, 0x0f, 0xb6, - 0xda, 0xd6, 0x76, 0xbb, 0xd5, 0x3b, 0x32, 0xdb, 0xd6, 0x5e, 0xa7, 0xdb, 0xed, 0xec, 0x3f, 0x6d, - 0x34, 0xd8, 0xdb, 0x70, 0x2f, 0x42, 0x89, 0x0a, 0x98, 0xc2, 0x5a, 0x10, 0xfd, 0x53, 0x53, 0xba, - 0xdf, 0xfe, 0x95, 0x9e, 0x75, 0xd8, 0x6e, 0x9b, 0x0d, 0xc6, 0xd6, 0x60, 0x25, 0xae, 0x9e, 0x2a, - 0x90, 0x75, 0x2f, 0x8a, 0xb4, 0xc3, 0xb6, 0xb9, 0xd7, 0xda, 0x17, 0x13, 0x9c, 0x48, 0x5b, 0x12, - 0xcd, 0x8e, 0xd3, 0xa6, 0x9b, 0xbd, 0xcc, 0x18, 0xd4, 0xb5, 0x59, 0xd9, 0x6e, 0x99, 0x8d, 0x15, - 0x36, 0x0f, 0x95, 0xbd, 0xc3, 0x43, 0xab, 0xd7, 0xd9, 0x6b, 0x1f, 0x1c, 0xf5, 0x1a, 0xab, 0x6c, - 0x19, 0x1a, 0x9d, 0xfd, 0x5e, 0xdb, 0x14, 0x73, 0xad, 0xb2, 0xfe, 0xcf, 0x22, 0x5b, 0x82, 0x79, - 0xd5, 0x52, 0x05, 0xfd, 0x8b, 0x22, 0x5b, 0x05, 0x76, 0xb4, 0x6f, 0xb6, 0x5b, 0x5b, 0x62, 0xe0, - 0xa2, 0x84, 0xff, 0x55, 0x94, 0x16, 0x92, 0x9f, 0xe6, 0xa2, 0xcd, 0x3a, 0x76, 0x39, 0x48, 0xde, - 0xfd, 0x5d, 0xd5, 0xee, 0xec, 0x7e, 0xd5, 0xab, 0x1c, 0x9a, 0x6a, 0x95, 0x9b, 0x51, 0xad, 0x66, - 0x74, 0xf7, 0x9a, 0x2e, 0xfb, 0xbd, 0x05, 0xb5, 0x11, 0xdd, 0x03, 0x2e, 0xef, 0xfb, 0x05, 0xe9, - 0x7f, 0x43, 0x40, 0xba, 0xec, 0x77, 0xe6, 0x59, 0x8a, 0xc2, 0xec, 0xb3, 0x14, 0x69, 0xf2, 0xfd, - 0x5c, 0x9a, 0x7c, 0xff, 0x00, 0x16, 0x88, 0x35, 0x39, 0xae, 0x33, 0x52, 0x5a, 0x33, 0x49, 0x81, - 0xf3, 0xc8, 0xa2, 0x08, 0xae, 0xd4, 0x09, 0xa5, 0x72, 0x48, 0x16, 0x52, 0x94, 0xda, 0x46, 0x42, - 0xd3, 0x20, 0xce, 0x11, 0x69, 0x1a, 0x51, 0x0d, 0xf6, 0x65, 0x5c, 0x43, 0x45, 0xab, 0x81, 0xe0, - 0x58, 0xc3, 0x03, 0x58, 0xe0, 0x97, 0xa1, 0x6f, 0x5b, 0xde, 0xd8, 0xfe, 0x7c, 0x82, 0x26, 0x5c, - 0x1b, 0x75, 0xf8, 0xaa, 0x39, 0x8f, 0x09, 0x07, 0x08, 0xdf, 0xb2, 0x43, 0xfb, 0xc1, 0x17, 0x50, - 0xd1, 0xee, 0x88, 0x67, 0xab, 0xb0, 0xf8, 0x59, 0xa7, 0xb7, 0xdf, 0xee, 0x76, 0xad, 0xc3, 0xa3, - 0x8d, 0x67, 0xed, 0xe7, 0xd6, 0x4e, 0xab, 0xbb, 0xd3, 0xb8, 0x21, 0x16, 0xed, 0x7e, 0xbb, 0xdb, - 0x6b, 0x6f, 0x25, 0xe0, 0x19, 0xf6, 0x06, 0xac, 0x1d, 0xed, 0x1f, 0x75, 0xdb, 0x5b, 0x56, 0x5a, - 0xbe, 0xac, 0xa0, 0x52, 0x99, 0x9e, 0x92, 0x3d, 0xf7, 0xe0, 0x37, 0xa0, 0x9e, 0x8c, 0x6a, 0x66, - 0x00, 0x73, 0xbb, 0xed, 0xa7, 0xad, 0xcd, 0xe7, 0x74, 0x61, 0x69, 0xb7, 0xd7, 0xea, 0x75, 0x36, - 0x2d, 0x79, 0x41, 0xa9, 0xe0, 0x08, 0x19, 0x56, 0x81, 0x62, 0x6b, 0x7f, 0x73, 0xe7, 0xc0, 0xec, - 0x36, 0xb2, 0xec, 0x36, 0xac, 0x2a, 0x5a, 0xdd, 0x3c, 0xd8, 0xdb, 0xeb, 0xf4, 0x90, 0x19, 0xf6, - 0x9e, 0x1f, 0x0a, 0xd2, 0x7c, 0xf0, 0x5d, 0xa8, 0x27, 0x7d, 0xef, 0x92, 0xa7, 0xb2, 0x6b, 0xb0, - 0xb2, 0xd1, 0xee, 0x7d, 0xd6, 0x6e, 0xef, 0x63, 0xd3, 0x37, 0xdb, 0xfb, 0x3d, 0xb3, 0xb5, 0xdb, - 0xe9, 0x3d, 0x6f, 0x64, 0x1e, 0x7c, 0x0c, 0x8d, 0x69, 0x43, 0x57, 0xc2, 0x32, 0xf8, 0x32, 0x13, - 0xe2, 0x83, 0x7f, 0x91, 0x03, 0x88, 0x03, 0x40, 0x04, 0x0f, 0xdb, 0x6a, 0xf5, 0x5a, 0xbb, 0x07, - 0x62, 0x7c, 0xcc, 0x83, 0x9e, 0x60, 0x4d, 0x66, 0xfb, 0x93, 0xc6, 0x8d, 0xd4, 0x94, 0x83, 0xc3, - 0x5e, 0x23, 0x23, 0xa6, 0xa2, 0xb3, 0xdf, 0xe9, 0x75, 0x5a, 0xbb, 0x96, 0x79, 0x70, 0xd4, 0xd9, - 0x7f, 0x4a, 0x57, 0x3c, 0x22, 0xfb, 0x3e, 0x3a, 0xdc, 0x36, 0x0f, 0xf6, 0x7b, 0x56, 0x77, 0xe7, - 0xa8, 0xb7, 0x85, 0x17, 0x44, 0x6e, 0x9a, 0x9d, 0x43, 0x2a, 0x33, 0xff, 0x32, 0x04, 0x51, 0x74, - 0x41, 0x4c, 0xe6, 0xd3, 0x83, 0x6e, 0xb7, 0x73, 0x68, 0x7d, 0x72, 0xd4, 0x36, 0x3b, 0xed, 0x2e, - 0x66, 0x9c, 0x4b, 0x81, 0x0b, 0xfc, 0xa2, 0x60, 0xfa, 0xbd, 0xdd, 0x4f, 0x25, 0x57, 0x16, 0xa8, - 0xa5, 0x24, 0x48, 0x60, 0x95, 0xc5, 0x60, 0x0a, 0xb6, 0x96, 0x52, 0x32, 0x5c, 0x93, 0x26, 0xf2, - 0x55, 0x04, 0xc3, 0x9e, 0x99, 0x65, 0xcc, 0x56, 0x4d, 0x4f, 0x12, 0xb9, 0x90, 0x97, 0x47, 0x3b, - 0xdf, 0xd6, 0x96, 0x89, 0x19, 0xea, 0x33, 0x50, 0x81, 0x3b, 0x2f, 0x26, 0x4a, 0xf0, 0x3d, 0x81, - 0xd2, 0x50, 0x1f, 0x22, 0x65, 0xe1, 0xf1, 0x6f, 0xe7, 0xa0, 0x4e, 0xc1, 0x78, 0xf4, 0xf6, 0x1f, - 0xf7, 0xd9, 0x1e, 0x14, 0xe5, 0x23, 0x92, 0x6c, 0x39, 0xba, 0x7d, 0x4f, 0x7f, 0xb6, 0x72, 0x6d, - 0x65, 0x1a, 0x2c, 0xe5, 0xbc, 0xc5, 0xbf, 0xf6, 0x27, 0xff, 0xe3, 0xef, 0x67, 0x6b, 0xac, 0xf2, - 0xf0, 0xfc, 0x83, 0x87, 0xa7, 0xdc, 0x0d, 0x44, 0x19, 0xbf, 0x06, 0x10, 0x3f, 0x8d, 0xc8, 0x9a, - 0x91, 0x75, 0x6b, 0xea, 0xdd, 0xc8, 0xb5, 0x9b, 0x29, 0x29, 0xb2, 0xdc, 0x9b, 0x58, 0xee, 0xa2, - 0x51, 0x17, 0xe5, 0x3a, 0xae, 0x13, 0xd2, 0x33, 0x89, 0x1f, 0x65, 0x1e, 0xb0, 0x01, 0x54, 0xf5, - 0x47, 0x0b, 0x99, 0x12, 0xc1, 0x52, 0x9e, 0x5d, 0x5c, 0xbb, 0x95, 0x9a, 0xa6, 0x84, 0x5b, 0xac, - 0x63, 0xd9, 0x68, 0x88, 0x3a, 0x26, 0x88, 0x11, 0xd7, 0x32, 0x24, 0x71, 0x3f, 0x7e, 0x9b, 0x90, - 0xdd, 0xd6, 0x04, 0xb6, 0x99, 0x97, 0x11, 0xd7, 0xee, 0x5c, 0x93, 0x2a, 0xeb, 0xba, 0x83, 0x75, - 0xad, 0x1a, 0x4c, 0xd4, 0xd5, 0x47, 0x1c, 0xf5, 0x32, 0xe2, 0x47, 0x99, 0x07, 0x8f, 0xff, 0xfd, - 0x7b, 0x50, 0x8e, 0x9c, 0x73, 0xd9, 0x6f, 0x42, 0x2d, 0x11, 0x2d, 0xc9, 0x54, 0x37, 0xd2, 0x82, - 0x2b, 0xd7, 0x6e, 0xa7, 0x27, 0xca, 0x8a, 0xdf, 0xc0, 0x8a, 0x9b, 0x6c, 0x45, 0x54, 0x2c, 0xa3, - 0x11, 0x1f, 0x62, 0x74, 0x33, 0xdd, 0x65, 0xf8, 0x42, 0x53, 0x6b, 0xa8, 0xb2, 0xdb, 0xd3, 0xaa, - 0x46, 0xa2, 0xb6, 0x3b, 0xd7, 0xa4, 0xca, 0xea, 0x6e, 0x63, 0x75, 0x2b, 0x6c, 0x49, 0xaf, 0x4e, - 0xf9, 0x74, 0x32, 0x8e, 0xf7, 0x87, 0xea, 0x4f, 0xf7, 0xb1, 0x3b, 0xf1, 0x6d, 0x8f, 0x29, 0x4f, - 0xfa, 0x45, 0x24, 0x32, 0xfb, 0xae, 0x9f, 0xd1, 0xc4, 0xaa, 0x18, 0xc3, 0xe9, 0xd3, 0x5f, 0xee, - 0x63, 0xc7, 0x50, 0xd1, 0x5e, 0xbb, 0x61, 0x37, 0xaf, 0x7d, 0x99, 0x67, 0x6d, 0x2d, 0x2d, 0x29, - 0xad, 0x2b, 0x7a, 0xf9, 0x0f, 0x4f, 0x38, 0x67, 0xbf, 0x0a, 0xe5, 0xe8, 0x0d, 0x15, 0xb6, 0xaa, - 0xbd, 0x69, 0xa3, 0xbf, 0xf9, 0xb2, 0xd6, 0x9c, 0x4d, 0x48, 0x23, 0x3e, 0xbd, 0x74, 0x41, 0x7c, - 0x9f, 0x41, 0x45, 0x7b, 0x27, 0x25, 0xea, 0xc0, 0xec, 0x5b, 0x2c, 0x51, 0x07, 0x52, 0x9e, 0x55, - 0x31, 0x16, 0xb0, 0x8a, 0x0a, 0x2b, 0x23, 0x7d, 0x87, 0x97, 0x5e, 0xc0, 0x76, 0x61, 0x59, 0xaa, - 0x70, 0xc7, 0xfc, 0xcb, 0x4c, 0x43, 0xca, 0x6b, 0x89, 0x8f, 0x32, 0xec, 0x63, 0x28, 0xa9, 0xe7, - 0x70, 0xd8, 0x4a, 0xfa, 0xb3, 0x3e, 0x6b, 0xab, 0x33, 0x70, 0xa9, 0x6f, 0x3d, 0x07, 0x88, 0x1f, - 0x65, 0x89, 0x98, 0xc4, 0xcc, 0x23, 0x2f, 0x11, 0x05, 0xcc, 0xbe, 0xe0, 0x62, 0xac, 0x60, 0x07, - 0x1b, 0x0c, 0x99, 0x84, 0xcb, 0x2f, 0xd4, 0x25, 0xcf, 0x3f, 0x82, 0x8a, 0xf6, 0x2e, 0x4b, 0x34, - 0x7c, 0xb3, 0x6f, 0xba, 0x44, 0xc3, 0x97, 0xf2, 0x8c, 0x8b, 0xb1, 0x86, 0xa5, 0x2f, 0x19, 0xf3, - 0xa2, 0x74, 0x21, 0xc3, 0x49, 0x59, 0x4a, 0x4c, 0xd0, 0x19, 0xd4, 0x12, 0x8f, 0xaf, 0x44, 0x2b, - 0x34, 0xed, 0x69, 0x97, 0x68, 0x85, 0xa6, 0xbe, 0xd7, 0xa2, 0xe8, 0xcc, 0x58, 0x10, 0xf5, 0xd0, - 0x3d, 0x4f, 0x5a, 0x4d, 0x3f, 0x84, 0x8a, 0xf6, 0x90, 0x4a, 0xd4, 0x97, 0xd9, 0x37, 0x5b, 0xa2, - 0xbe, 0xa4, 0xbd, 0xbb, 0xb2, 0x84, 0x75, 0xd4, 0x0d, 0x24, 0x05, 0xbc, 0xa6, 0x56, 0x94, 0xfd, - 0x9b, 0x50, 0x4f, 0xbe, 0xad, 0x12, 0xad, 0xfd, 0xd4, 0x47, 0x5a, 0xa2, 0xb5, 0x7f, 0xcd, 0x83, - 0x2c, 0x92, 0xa4, 0x1f, 0x2c, 0x46, 0x95, 0x3c, 0xfc, 0x89, 0x0c, 0x33, 0xfa, 0x82, 0x7d, 0x22, - 0x18, 0x9c, 0xbc, 0x25, 0x99, 0xad, 0x6a, 0x54, 0xab, 0x5f, 0xb7, 0x1c, 0xad, 0x97, 0x99, 0x0b, - 0x95, 0x93, 0xc4, 0x8c, 0x85, 0xb3, 0xa7, 0xb0, 0x18, 0x11, 0x73, 0x74, 0xed, 0x71, 0x10, 0xf5, - 0x21, 0xf5, 0x72, 0xe5, 0xb5, 0xc6, 0x74, 0xea, 0xa3, 0x0c, 0x6d, 0x7f, 0x78, 0xd9, 0xac, 0xb6, - 0xfd, 0xe9, 0x37, 0x1f, 0x6b, 0xdb, 0x5f, 0xe2, 0x4e, 0xda, 0xe9, 0xed, 0x2f, 0x74, 0x44, 0x19, - 0x2e, 0xcc, 0x4f, 0x5f, 0x42, 0x7c, 0xe7, 0xba, 0x6b, 0x1c, 0xa8, 0xf8, 0x37, 0x5e, 0x7e, 0xcb, - 0x43, 0x92, 0x15, 0x29, 0x6e, 0xfa, 0x50, 0x7a, 0xb5, 0xb0, 0x5f, 0x87, 0xaa, 0xfe, 0x1e, 0x03, - 0xd3, 0x79, 0xc2, 0x74, 0x4d, 0xb7, 0x52, 0xd3, 0x92, 0x54, 0xc2, 0xaa, 0x7a, 0x35, 0xec, 0x53, - 0x58, 0x89, 0x86, 0x59, 0xbf, 0x87, 0x20, 0x60, 0x77, 0x53, 0x6e, 0x27, 0x48, 0x0c, 0xf6, 0xcd, - 0x6b, 0xaf, 0x2f, 0x78, 0x94, 0x11, 0xd4, 0x97, 0xbc, 0x18, 0x3e, 0xde, 0x79, 0xd2, 0xee, 0xc3, - 0x8f, 0x77, 0x9e, 0xd4, 0xdb, 0xe4, 0x15, 0xf5, 0xb1, 0xc5, 0xc4, 0x18, 0x91, 0xbf, 0x2f, 0xfb, - 0x21, 0xcc, 0x6b, 0x97, 0x2c, 0x74, 0xaf, 0xdc, 0x7e, 0xb4, 0x92, 0x66, 0xaf, 0x17, 0x5d, 0x4b, - 0x3b, 0xf4, 0x34, 0x56, 0xb1, 0xfc, 0x05, 0x23, 0x31, 0x38, 0x62, 0x15, 0x6d, 0x42, 0x45, 0xbf, - 0xc0, 0xe1, 0x25, 0xe5, 0xae, 0x6a, 0x49, 0xfa, 0x4d, 0x96, 0x8f, 0x32, 0x6c, 0x17, 0x1a, 0xd3, - 0x97, 0xab, 0x45, 0x3c, 0x25, 0xed, 0x42, 0xba, 0xb5, 0xa9, 0xc4, 0xc4, 0x95, 0x6c, 0xec, 0x90, - 0x22, 0x46, 0xa2, 0xa7, 0x05, 0x3d, 0x7f, 0x7a, 0x57, 0x4f, 0x3e, 0x39, 0x18, 0x95, 0x96, 0xf6, - 0xd8, 0xe4, 0xfd, 0xcc, 0xa3, 0x0c, 0xfb, 0xdd, 0x0c, 0x54, 0x13, 0xd7, 0x0d, 0x25, 0x7c, 0xf2, - 0xa7, 0xfa, 0xd9, 0xd4, 0xd3, 0xf4, 0x8e, 0x1a, 0x26, 0x0e, 0xe2, 0xee, 0x83, 0x1f, 0x24, 0x26, - 0xe9, 0x27, 0x09, 0x9b, 0xe1, 0xfa, 0xf4, 0xdb, 0x83, 0x5f, 0x4c, 0x23, 0xe8, 0x17, 0xd6, 0x7e, - 0xf1, 0x28, 0xc3, 0xfe, 0x55, 0x06, 0xea, 0x49, 0x67, 0x80, 0xa8, 0xbb, 0xa9, 0x6e, 0x07, 0x11, - 0x29, 0x5d, 0xe3, 0x41, 0xf0, 0x43, 0x6c, 0x65, 0xef, 0x81, 0x99, 0x68, 0xa5, 0x7c, 0xd2, 0xe0, - 0xe7, 0x6b, 0x2d, 0xfb, 0x88, 0x9e, 0xfa, 0x55, 0x3e, 0x52, 0x6c, 0xf6, 0x69, 0xd8, 0x88, 0xfc, - 0xf4, 0x87, 0x54, 0x71, 0x12, 0x7e, 0x44, 0x6f, 0xec, 0x29, 0x97, 0x1b, 0x41, 0xc5, 0xaf, 0x9b, - 0xdf, 0x78, 0x1b, 0xfb, 0xf4, 0x86, 0x71, 0x33, 0xd1, 0xa7, 0x69, 0xc1, 0xa3, 0x45, 0xad, 0x93, - 0xef, 0xa0, 0xc6, 0x3b, 0xe7, 0xcc, 0xdb, 0xa8, 0xd7, 0x37, 0x72, 0x44, 0x8d, 0x94, 0xe8, 0x89, - 0xa5, 0xf6, 0x9a, 0xc5, 0x18, 0x0f, 0xb0, 0xad, 0x6f, 0x1b, 0x77, 0xaf, 0x6d, 0xeb, 0x43, 0x34, - 0xec, 0x8b, 0x16, 0x1f, 0x02, 0xc4, 0x3e, 0x8c, 0x6c, 0xca, 0x93, 0x2e, 0x62, 0x40, 0xb3, 0x6e, - 0x8e, 0xc9, 0xf5, 0xac, 0x1c, 0xee, 0x44, 0x89, 0xbf, 0x4a, 0xec, 0x34, 0xf2, 0xf1, 0xd3, 0xa5, - 0xaf, 0xa4, 0xbb, 0x61, 0x42, 0xfa, 0x9a, 0x2e, 0x3f, 0xc1, 0x4c, 0x23, 0x87, 0xbe, 0x23, 0xa8, - 0xed, 0x7a, 0xde, 0x8b, 0xc9, 0x38, 0xf2, 0x9b, 0x4f, 0x7a, 0xdb, 0xec, 0xd8, 0xc1, 0xd9, 0xda, - 0x54, 0x2f, 0x8c, 0x7b, 0x58, 0xd4, 0x1a, 0x6b, 0x6a, 0x45, 0x3d, 0xfc, 0x49, 0xec, 0x38, 0xf9, - 0x05, 0xb3, 0x61, 0x21, 0xe2, 0xd1, 0xb1, 0x73, 0x62, 0xb2, 0x98, 0x04, 0x67, 0x9e, 0xae, 0x22, - 0xa1, 0x26, 0xa8, 0xd6, 0x3e, 0x0c, 0x54, 0x99, 0x8f, 0x32, 0xec, 0x10, 0xaa, 0x5b, 0xbc, 0x8f, - 0x17, 0x2f, 0xa0, 0xcf, 0xca, 0x62, 0xc2, 0xff, 0x81, 0x9c, 0x5d, 0xd6, 0x6a, 0x09, 0x60, 0x72, - 0xdf, 0x1a, 0xdb, 0x57, 0x3e, 0xff, 0xfc, 0xe1, 0x4f, 0xa4, 0x37, 0xcc, 0x17, 0x6a, 0xdf, 0x52, - 0xde, 0x42, 0x89, 0x7d, 0x6b, 0xca, 0xbd, 0x28, 0xb1, 0x6f, 0xcd, 0xb8, 0x17, 0x25, 0x86, 0x5a, - 0x79, 0x2b, 0xb1, 0x21, 0x2c, 0xcc, 0x78, 0x24, 0x45, 0x5b, 0xd6, 0x75, 0x7e, 0x4c, 0x6b, 0xf7, - 0xae, 0x47, 0x48, 0xd6, 0xf6, 0x20, 0x59, 0x5b, 0x17, 0x6a, 0x74, 0x1b, 0xed, 0x31, 0xa7, 0x10, - 0xcc, 0xa9, 0xfb, 0x8b, 0xf4, 0xf8, 0xce, 0xe9, 0x0d, 0x06, 0xd3, 0x92, 0x12, 0x0e, 0x06, 0xe1, - 0xb1, 0x13, 0x7c, 0x82, 0x41, 0x8b, 0x79, 0x8c, 0x88, 0x71, 0x36, 0x0e, 0x33, 0x22, 0xc6, 0x94, - 0x10, 0x49, 0xa5, 0x7e, 0xb2, 0xe5, 0xa8, 0xec, 0x87, 0xae, 0x37, 0xe0, 0x23, 0x59, 0xea, 0xaf, - 0x42, 0xe5, 0x29, 0x0f, 0x55, 0x90, 0x61, 0x24, 0xcb, 0x4f, 0x45, 0x1d, 0xae, 0xa5, 0x84, 0x86, - 0x26, 0x69, 0x93, 0x4a, 0xe6, 0x83, 0x53, 0x4e, 0x4c, 0xd0, 0x72, 0x06, 0x5f, 0xb0, 0x5f, 0xc1, - 0xc2, 0xa3, 0x90, 0xfa, 0x15, 0xad, 0x99, 0x7a, 0xe1, 0xf3, 0x53, 0xf0, 0xb4, 0x92, 0x45, 0x9b, - 0x35, 0x99, 0xd2, 0x85, 0x8a, 0x76, 0xf5, 0x46, 0x34, 0x36, 0xb3, 0x57, 0xad, 0x44, 0x63, 0x93, - 0x72, 0x53, 0x87, 0x71, 0x1f, 0xeb, 0x31, 0xd8, 0xbd, 0xb8, 0x1e, 0xba, 0x9d, 0x23, 0xae, 0xe9, - 0xe1, 0x4f, 0xec, 0x51, 0xf8, 0x05, 0xfb, 0x8c, 0xa6, 0x43, 0x0b, 0xa2, 0x8c, 0x95, 0x93, 0xe9, - 0x78, 0xcb, 0x68, 0xb0, 0xb4, 0xa4, 0xa4, 0xc2, 0x42, 0x55, 0xa1, 0xc4, 0xf8, 0x04, 0xa0, 0x1b, - 0x7a, 0xe3, 0x2d, 0x9b, 0x8f, 0x3c, 0x37, 0xe6, 0xe9, 0x71, 0x58, 0x5f, 0xcc, 0x27, 0xb5, 0xd8, - 0x3e, 0xf6, 0x99, 0xa6, 0xcd, 0x25, 0xc2, 0x7f, 0x15, 0x11, 0x5f, 0x1b, 0xf9, 0x17, 0x0d, 0x48, - 0x4a, 0xf4, 0xdf, 0xa3, 0x0c, 0x6b, 0x01, 0xc4, 0xae, 0x6f, 0x91, 0x6e, 0x36, 0xe3, 0x55, 0x17, - 0xb1, 0xd7, 0x14, 0x3f, 0xb9, 0x43, 0x28, 0xc7, 0x3e, 0x43, 0xab, 0xf1, 0x4d, 0x42, 0x09, 0x0f, - 0xa3, 0x48, 0x52, 0x98, 0xf1, 0xd7, 0x31, 0x1a, 0x38, 0x54, 0xc0, 0x4a, 0x62, 0xa8, 0x4e, 0x38, - 0x0f, 0x98, 0x03, 0x8b, 0xd4, 0xc0, 0x48, 0x2c, 0xc3, 0x70, 0xb4, 0xe8, 0xe1, 0x93, 0x59, 0xd7, - 0x99, 0x88, 0x6b, 0xa4, 0x3a, 0x80, 0x24, 0x8e, 0x98, 0x04, 0xb5, 0x52, 0x28, 0x9c, 0xd8, 0x02, - 0x46, 0xb0, 0x30, 0xe3, 0x63, 0x10, 0xb1, 0x8e, 0xeb, 0x9c, 0x46, 0x22, 0xd6, 0x71, 0xad, 0x7b, - 0x82, 0xb1, 0x8c, 0x55, 0xce, 0x1b, 0x80, 0x2a, 0xe5, 0x85, 0x13, 0xf6, 0xcf, 0x44, 0x75, 0xbf, - 0x9f, 0x81, 0xc5, 0x14, 0x2f, 0x02, 0xf6, 0xa6, 0x3a, 0x9d, 0xb8, 0xd6, 0xc3, 0x60, 0x2d, 0xd5, - 0xda, 0x6c, 0x74, 0xb1, 0x9e, 0x3d, 0xf6, 0x2c, 0xb1, 0x81, 0x92, 0xb1, 0x57, 0xae, 0xcc, 0x97, - 0x0a, 0x2f, 0xa9, 0x92, 0xcb, 0xe7, 0xb0, 0x4a, 0x0d, 0x69, 0x0d, 0x87, 0x53, 0x96, 0xf0, 0x37, - 0xb4, 0x56, 0xa4, 0x58, 0xf7, 0x13, 0x7a, 0x40, 0xd2, 0xc2, 0x7f, 0x8d, 0xd8, 0x4e, 0x4d, 0x65, - 0x13, 0x68, 0x4c, 0x5b, 0x98, 0xd9, 0xf5, 0x65, 0xad, 0xdd, 0x4d, 0xe8, 0xd9, 0x29, 0x56, 0xe9, - 0xaf, 0x61, 0x65, 0x77, 0x8d, 0xb5, 0xb4, 0x71, 0x21, 0xd5, 0x5b, 0xcc, 0xc7, 0x5f, 0x8d, 0xcc, - 0xe1, 0x53, 0xfd, 0xbc, 0x1b, 0x5d, 0xf5, 0x9e, 0x6e, 0xbc, 0x8f, 0x34, 0xfd, 0x74, 0x6b, 0xfa, - 0x3b, 0x58, 0xfd, 0x3d, 0xe3, 0x56, 0x5a, 0xf5, 0x3e, 0x65, 0x21, 0x9d, 0x7f, 0x75, 0x7a, 0x5d, - 0xab, 0x16, 0xdc, 0x4b, 0x9b, 0xef, 0x6b, 0x75, 0xae, 0xa9, 0xb1, 0xbe, 0x81, 0x32, 0x64, 0x55, - 0x37, 0x7f, 0x47, 0xcb, 0x27, 0xc5, 0xce, 0x1e, 0x2d, 0x9f, 0x34, 0x7b, 0x79, 0x52, 0x7e, 0x52, - 0x96, 0xf2, 0x8f, 0x32, 0x0f, 0x36, 0xde, 0xfd, 0xe1, 0xd7, 0x4e, 0x9d, 0xf0, 0x6c, 0x72, 0xbc, - 0xde, 0xf7, 0x46, 0x0f, 0x87, 0xea, 0x54, 0x53, 0xc6, 0x6c, 0x3f, 0x1c, 0xba, 0x83, 0x87, 0x58, - 0xec, 0xf1, 0xdc, 0xd8, 0xf7, 0x42, 0xef, 0x9b, 0xff, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xf7, 0x21, - 0x23, 0x29, 0x55, 0x89, 0x00, 0x00, + // 11870 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0xbd, 0xeb, 0x6f, 0x24, 0x49, + 0x72, 0x18, 0x3e, 0xfd, 0x62, 0x77, 0x47, 0x3f, 0xd8, 0x4c, 0xbe, 0x7a, 0x38, 0x33, 0x3b, 0xb3, + 0xb5, 0x7b, 0xbb, 0xb3, 0xb3, 0x77, 0x9c, 0xd9, 0xb9, 0x9b, 0xbd, 0xbb, 0xdd, 0x9f, 0x4e, 0xd7, + 0x24, 0x9b, 0xc3, 0xbe, 0xe1, 0x6b, 0xab, 0x9b, 0xbb, 0x9a, 0xd3, 0xa3, 0xae, 0xd8, 0x9d, 0x24, + 0x4b, 0xd3, 0x5d, 0xd5, 0x5b, 0x55, 0xcd, 0xc7, 0x1d, 0xf6, 0xf7, 0xc1, 0xb0, 0x05, 0xc1, 0xf0, + 0x03, 0x82, 0x2d, 0x03, 0x96, 0x2d, 0xd8, 0xb0, 0x60, 0x18, 0x86, 0x01, 0x41, 0xc0, 0xc9, 0x1f, + 0x0c, 0xf8, 0xbb, 0xbe, 0xf8, 0x01, 0x43, 0xf2, 0x17, 0x43, 0x10, 0x60, 0xd8, 0x96, 0x3f, 0x18, + 0x30, 0x04, 0xf8, 0x1f, 0x30, 0x32, 0x22, 0xb3, 0x2a, 0xab, 0xbb, 0x38, 0x33, 0x7b, 0xb7, 0xbe, + 0x2f, 0x64, 0x57, 0x64, 0xe4, 0x3b, 0x32, 0x32, 0x22, 0x23, 0x22, 0x13, 0xca, 0xfe, 0xb8, 0xbf, + 0x3e, 0xf6, 0xbd, 0xd0, 0x63, 0x85, 0xa1, 0xeb, 0x8f, 0xfb, 0x6b, 0xb7, 0x4f, 0x3d, 0xef, 0x74, + 0xc8, 0x1f, 0xda, 0x63, 0xe7, 0xa1, 0xed, 0xba, 0x5e, 0x68, 0x87, 0x8e, 0xe7, 0x06, 0x84, 0x64, + 0xfc, 0x08, 0xea, 0x4f, 0xb9, 0xdb, 0xe5, 0x7c, 0x60, 0xf2, 0xcf, 0x27, 0x3c, 0x08, 0xd9, 0xfb, + 0xb0, 0x60, 0xf3, 0x1f, 0x73, 0x3e, 0xb0, 0xc6, 0x76, 0x10, 0x8c, 0xcf, 0x7c, 0x3b, 0xe0, 0xcd, + 0xcc, 0xbd, 0xcc, 0xfd, 0xaa, 0xd9, 0xa0, 0x84, 0xc3, 0x08, 0xce, 0xde, 0x84, 0x6a, 0x20, 0x50, + 0xb9, 0x1b, 0xfa, 0xde, 0xf8, 0xaa, 0x99, 0x45, 0xbc, 0x8a, 0x80, 0xb5, 0x09, 0x64, 0x0c, 0x61, + 0x3e, 0xaa, 0x21, 0x18, 0x7b, 0x6e, 0xc0, 0xd9, 0x23, 0x58, 0xea, 0x3b, 0xe3, 0x33, 0xee, 0x5b, + 0x98, 0x79, 0xe4, 0xf2, 0x91, 0xe7, 0x3a, 0xfd, 0x66, 0xe6, 0x5e, 0xee, 0x7e, 0xd9, 0x64, 0x94, + 0x26, 0x72, 0xec, 0xc9, 0x14, 0xf6, 0x2e, 0xcc, 0x73, 0x97, 0xe0, 0x7c, 0x80, 0xb9, 0x64, 0x55, + 0xf5, 0x18, 0x2c, 0x32, 0x18, 0xbf, 0x9d, 0x85, 0x85, 0x8e, 0xeb, 0x84, 0x9f, 0xd9, 0xc3, 0x21, + 0x0f, 0x55, 0x9f, 0xde, 0x85, 0xf9, 0x0b, 0x04, 0x60, 0x9f, 0x2e, 0x3c, 0x7f, 0x20, 0x7b, 0x54, + 0x27, 0xf0, 0xa1, 0x84, 0x5e, 0xdb, 0xb2, 0xec, 0xb5, 0x2d, 0x4b, 0x1d, 0xae, 0xdc, 0x35, 0xc3, + 0xf5, 0x2e, 0xcc, 0xfb, 0xbc, 0xef, 0x9d, 0x73, 0xff, 0xca, 0xba, 0x70, 0xdc, 0x81, 0x77, 0xd1, + 0xcc, 0xdf, 0xcb, 0xdc, 0x2f, 0x98, 0x75, 0x05, 0xfe, 0x0c, 0xa1, 0x6c, 0x03, 0xe6, 0xfb, 0x67, + 0xb6, 0xeb, 0xf2, 0xa1, 0x75, 0x6c, 0xf7, 0x5f, 0x4c, 0xc6, 0x41, 0xb3, 0x70, 0x2f, 0x73, 0xbf, + 0xf2, 0xf8, 0xe6, 0x3a, 0xce, 0xea, 0xfa, 0xe6, 0x99, 0xed, 0x6e, 0x60, 0x4a, 0xd7, 0xb5, 0xc7, + 0xc1, 0x99, 0x17, 0x9a, 0x75, 0x99, 0x83, 0xc0, 0x81, 0xb1, 0x04, 0x4c, 0x1f, 0x09, 0x1a, 0x7b, + 0xe3, 0x5f, 0x65, 0x60, 0xf1, 0xc8, 0x1d, 0x7a, 0xfd, 0x17, 0x3f, 0xe3, 0x10, 0xa5, 0xf4, 0x21, + 0xfb, 0xba, 0x7d, 0xc8, 0x7d, 0xd9, 0x3e, 0xac, 0xc0, 0x52, 0xb2, 0xb1, 0xb2, 0x17, 0x1c, 0x96, + 0x45, 0xee, 0x53, 0xae, 0x9a, 0xa5, 0xba, 0xf1, 0x1e, 0x34, 0xfa, 0x13, 0xdf, 0xe7, 0xee, 0x4c, + 0x3f, 0xe6, 0x25, 0x3c, 0xea, 0xc8, 0x9b, 0x50, 0x75, 0xf9, 0x45, 0x8c, 0x26, 0x69, 0xd7, 0xe5, + 0x17, 0x0a, 0xc5, 0x68, 0xc2, 0xca, 0x74, 0x35, 0xb2, 0x01, 0x7f, 0x99, 0x81, 0xfc, 0x51, 0x78, + 0xe9, 0xb1, 0x27, 0x50, 0xb5, 0x07, 0x03, 0x9f, 0x07, 0x81, 0x15, 0x5e, 0x8d, 0x69, 0xa5, 0xd4, + 0x1f, 0x33, 0xd9, 0xc5, 0x16, 0x25, 0xf5, 0xae, 0xc6, 0xdc, 0xac, 0xd8, 0xf1, 0x07, 0x6b, 0x42, + 0x51, 0x7e, 0x62, 0xbd, 0x65, 0x53, 0x7d, 0xb2, 0x3b, 0x00, 0xf6, 0xc8, 0x9b, 0xb8, 0xa1, 0x15, + 0xd8, 0x21, 0x8e, 0x58, 0xce, 0x2c, 0x13, 0xa4, 0x6b, 0x87, 0xec, 0x16, 0x94, 0xc7, 0x2f, 0xac, + 0xa0, 0xef, 0x3b, 0xe3, 0x10, 0x89, 0xa7, 0x6c, 0x96, 0xc6, 0x2f, 0xba, 0xf8, 0xcd, 0xde, 0x87, + 0x92, 0x37, 0x09, 0xc7, 0x9e, 0xe3, 0x86, 0x92, 0x5e, 0xe6, 0x65, 0x43, 0x0e, 0x26, 0xe1, 0xa1, + 0x00, 0x9b, 0x11, 0x02, 0x7b, 0x1b, 0x6a, 0x7d, 0xcf, 0x3d, 0x71, 0xfc, 0x11, 0x71, 0x84, 0xe6, + 0x1c, 0xd6, 0x95, 0x04, 0x1a, 0x7f, 0x94, 0x85, 0x4a, 0xcf, 0xb7, 0xdd, 0xc0, 0xee, 0x0b, 0x00, + 0x5b, 0x85, 0x62, 0x78, 0x69, 0x9d, 0xd9, 0xc1, 0x19, 0x76, 0xb5, 0x6c, 0xce, 0x85, 0x97, 0x3b, + 0x76, 0x70, 0xc6, 0x56, 0x60, 0x8e, 0x5a, 0x89, 0x1d, 0xca, 0x99, 0xf2, 0x4b, 0x2c, 0x10, 0x77, + 0x32, 0xb2, 0x92, 0x55, 0xe5, 0x90, 0x62, 0x1a, 0xee, 0x64, 0xb4, 0xa9, 0xc3, 0x45, 0xe7, 0x8f, + 0xc5, 0x74, 0x53, 0x05, 0xd4, 0xbd, 0x32, 0x42, 0xb0, 0x8e, 0x37, 0xa1, 0x2a, 0x93, 0xb9, 0x73, + 0x7a, 0x46, 0x7d, 0x2c, 0x98, 0x15, 0x42, 0x40, 0x90, 0x28, 0x21, 0x74, 0x46, 0xdc, 0x0a, 0x42, + 0x7b, 0x34, 0x96, 0x5d, 0x2a, 0x0b, 0x48, 0x57, 0x00, 0x30, 0xd9, 0x0b, 0xed, 0xa1, 0x75, 0xc2, + 0x79, 0xd0, 0x2c, 0xca, 0x64, 0x01, 0xd9, 0xe6, 0x3c, 0x60, 0x5f, 0x83, 0xfa, 0x80, 0x07, 0xa1, + 0x25, 0x27, 0x83, 0x07, 0xcd, 0x12, 0xae, 0xfc, 0x9a, 0x80, 0xb6, 0x14, 0x90, 0xdd, 0x06, 0xf0, + 0xed, 0x0b, 0x4b, 0x0c, 0x04, 0xbf, 0x6c, 0x96, 0x69, 0x16, 0x7c, 0xfb, 0xa2, 0x77, 0xb9, 0xc3, + 0x2f, 0x05, 0xd5, 0x3c, 0xe5, 0xa1, 0x36, 0x68, 0x81, 0xa4, 0x4e, 0x63, 0x17, 0x98, 0x06, 0xde, + 0xe2, 0xa1, 0xed, 0x0c, 0x03, 0xf6, 0x21, 0x54, 0x43, 0x0d, 0x19, 0xd9, 0x60, 0x25, 0x22, 0x21, + 0x2d, 0x83, 0x99, 0xc0, 0x33, 0xce, 0xa0, 0xb4, 0xcd, 0xf9, 0xae, 0x33, 0x72, 0x42, 0xb6, 0x02, + 0x85, 0x13, 0xe7, 0x92, 0x13, 0xb1, 0xe7, 0x76, 0x6e, 0x98, 0xf4, 0xc9, 0xee, 0x02, 0xe0, 0x0f, + 0x6b, 0x14, 0x51, 0xd3, 0xce, 0x0d, 0xb3, 0x8c, 0xb0, 0xbd, 0xc0, 0x0e, 0xd9, 0x1a, 0x14, 0xc7, + 0xdc, 0xef, 0x73, 0x35, 0x6f, 0x3b, 0x37, 0x4c, 0x05, 0xd8, 0x28, 0x42, 0x61, 0x28, 0x4a, 0x37, + 0xfe, 0xa4, 0x00, 0x95, 0x2e, 0x77, 0xa3, 0x55, 0xc6, 0x20, 0x2f, 0x06, 0x44, 0xae, 0x2c, 0xfc, + 0xcd, 0xde, 0x82, 0x0a, 0x0e, 0x5d, 0x10, 0xfa, 0x8e, 0x7b, 0x4a, 0x54, 0xbd, 0x91, 0x6d, 0x66, + 0x4c, 0x10, 0xe0, 0x2e, 0x42, 0x59, 0x03, 0x72, 0xf6, 0x48, 0x51, 0xb5, 0xf8, 0xc9, 0x6e, 0x42, + 0xc9, 0x1e, 0x85, 0xd4, 0xbc, 0x2a, 0x82, 0x8b, 0xf6, 0x28, 0xc4, 0xa6, 0xbd, 0x09, 0xd5, 0xb1, + 0x7d, 0x35, 0x12, 0x6b, 0x39, 0x22, 0x87, 0xaa, 0x59, 0x91, 0x30, 0x24, 0x88, 0xc7, 0xb0, 0xa8, + 0xa3, 0xa8, 0xca, 0x0b, 0x51, 0xe5, 0x0b, 0x1a, 0xb6, 0x6c, 0xc3, 0xbb, 0x30, 0xaf, 0xf2, 0xf8, + 0xd4, 0x1f, 0x24, 0x93, 0xb2, 0x59, 0x97, 0x60, 0xd5, 0xcb, 0xfb, 0xd0, 0x38, 0x71, 0x5c, 0x7b, + 0x68, 0xf5, 0x87, 0xe1, 0xb9, 0x35, 0xe0, 0xc3, 0xd0, 0x46, 0x8a, 0x29, 0x98, 0x75, 0x84, 0x6f, + 0x0e, 0xc3, 0xf3, 0x2d, 0x01, 0x65, 0x5f, 0x87, 0xf2, 0x09, 0xe7, 0x16, 0x0e, 0x56, 0xb3, 0x94, + 0x58, 0x78, 0x6a, 0x86, 0xcc, 0xd2, 0x89, 0x9a, 0xab, 0xaf, 0x43, 0xc3, 0x9b, 0x84, 0xa7, 0x9e, + 0xe3, 0x9e, 0x5a, 0x82, 0xdf, 0x59, 0xce, 0x00, 0x69, 0x28, 0xbf, 0x91, 0x7d, 0x94, 0x31, 0xeb, + 0x2a, 0x4d, 0x70, 0x9e, 0xce, 0x80, 0xbd, 0x03, 0xf3, 0x43, 0x3b, 0x08, 0xad, 0x33, 0x6f, 0x6c, + 0x8d, 0x27, 0xc7, 0x2f, 0xf8, 0x55, 0xb3, 0x86, 0x03, 0x51, 0x13, 0xe0, 0x1d, 0x6f, 0x7c, 0x88, + 0x40, 0x41, 0xd9, 0xd8, 0x4e, 0x6a, 0x04, 0xdc, 0xcb, 0xdc, 0xaf, 0x99, 0x65, 0x01, 0xa1, 0x4a, + 0x9f, 0xc3, 0x22, 0x4e, 0x4f, 0x7f, 0x12, 0x84, 0xde, 0xc8, 0x12, 0xbc, 0xda, 0x1f, 0x04, 0xcd, + 0x0a, 0xd2, 0xda, 0x7b, 0xb2, 0xb1, 0xda, 0x1c, 0xaf, 0x6f, 0xf1, 0x20, 0xdc, 0x44, 0x64, 0x93, + 0x70, 0xc5, 0x86, 0x7e, 0x65, 0x2e, 0x0c, 0xa6, 0xe1, 0xec, 0xeb, 0xc0, 0xec, 0xe1, 0xd0, 0xbb, + 0xb0, 0x02, 0x3e, 0x3c, 0xb1, 0xe4, 0x20, 0x36, 0xeb, 0xf7, 0x32, 0xf7, 0x4b, 0x66, 0x03, 0x53, + 0xba, 0x7c, 0x78, 0x72, 0x48, 0x70, 0xf6, 0x21, 0xe0, 0x62, 0xb2, 0x4e, 0xb8, 0x1d, 0x4e, 0x7c, + 0x1e, 0x34, 0xe7, 0xef, 0xe5, 0xee, 0xd7, 0x1f, 0x2f, 0x44, 0xe3, 0x85, 0xe0, 0x0d, 0x27, 0x34, + 0xab, 0x02, 0x4f, 0x7e, 0x07, 0x6b, 0x5b, 0xb0, 0x92, 0xde, 0x24, 0x41, 0x54, 0x62, 0x54, 0x04, + 0x31, 0xe6, 0x4d, 0xf1, 0x93, 0x2d, 0x41, 0xe1, 0xdc, 0x1e, 0x4e, 0xb8, 0xe4, 0xe9, 0xf4, 0xf1, + 0x51, 0xf6, 0x3b, 0x19, 0xe3, 0x8f, 0x33, 0x50, 0xa5, 0x5e, 0x4a, 0x59, 0xe4, 0x2d, 0xa8, 0x29, + 0x6a, 0xe0, 0xbe, 0xef, 0xf9, 0x92, 0xab, 0x29, 0xca, 0x6b, 0x0b, 0x98, 0xd8, 0x55, 0x14, 0xd2, + 0xd8, 0xe7, 0xce, 0xc8, 0x3e, 0x55, 0x45, 0x2b, 0x52, 0x3a, 0x94, 0x60, 0xf6, 0x41, 0x5c, 0x9e, + 0xef, 0x4d, 0x42, 0x2e, 0xf7, 0xbc, 0xaa, 0xec, 0x9e, 0x29, 0x60, 0x51, 0xe9, 0xf8, 0xf5, 0x1a, + 0x74, 0x6e, 0xfc, 0x6e, 0x06, 0x98, 0x68, 0x76, 0xcf, 0xa3, 0x02, 0x24, 0x85, 0x4e, 0xe7, 0xcc, + 0xbc, 0xf6, 0x0a, 0xc9, 0xbe, 0x6c, 0x85, 0x18, 0x50, 0xa0, 0xb6, 0xe7, 0x53, 0xda, 0x4e, 0x49, + 0x3f, 0xc8, 0x97, 0x72, 0x8d, 0xbc, 0xf1, 0x5f, 0x72, 0xb0, 0xb4, 0x49, 0x5b, 0x76, 0xab, 0xdf, + 0xe7, 0xe3, 0x68, 0xed, 0xdc, 0x85, 0x8a, 0xeb, 0x0d, 0xb8, 0xa2, 0x58, 0x6a, 0x18, 0x08, 0x90, + 0x46, 0xae, 0x67, 0xb6, 0xe3, 0x52, 0xc3, 0x69, 0x30, 0xcb, 0x08, 0xc1, 0x66, 0xbf, 0x03, 0xf3, + 0x63, 0xee, 0x0e, 0xf4, 0x25, 0x42, 0x42, 0x55, 0x4d, 0x82, 0xe5, 0xea, 0xb8, 0x0b, 0x95, 0x93, + 0x09, 0xe1, 0x09, 0xc6, 0x92, 0x47, 0x1a, 0x00, 0x09, 0x6a, 0x11, 0x7f, 0x19, 0x4f, 0x82, 0x33, + 0x4c, 0x2d, 0x60, 0x6a, 0x51, 0x7c, 0x8b, 0xa4, 0x3b, 0x00, 0x83, 0x49, 0x10, 0xca, 0x15, 0x33, + 0x87, 0x89, 0x65, 0x01, 0xa1, 0x15, 0xf3, 0x0d, 0x58, 0x1c, 0xd9, 0x97, 0x16, 0xd2, 0x8e, 0xe5, + 0xb8, 0xd6, 0xc9, 0x10, 0xf7, 0x9c, 0x22, 0xe2, 0x35, 0x46, 0xf6, 0xe5, 0xa7, 0x22, 0xa5, 0xe3, + 0x6e, 0x23, 0x5c, 0xb0, 0x15, 0x25, 0xee, 0xf8, 0x3c, 0xe0, 0xfe, 0x39, 0x47, 0x4e, 0x90, 0x8f, + 0x64, 0x1a, 0x93, 0xa0, 0xa2, 0x45, 0x23, 0xd1, 0xef, 0x70, 0xd8, 0xa7, 0x65, 0x6f, 0x16, 0x47, + 0x8e, 0xbb, 0x13, 0x0e, 0xfb, 0x62, 0x5f, 0x11, 0x7c, 0x64, 0xcc, 0x7d, 0xeb, 0xc5, 0x05, 0xae, + 0xe1, 0x3c, 0xf2, 0x8d, 0x43, 0xee, 0x3f, 0xbb, 0x10, 0x5b, 0x7f, 0x3f, 0x40, 0x46, 0x64, 0x5f, + 0x35, 0x2b, 0xb8, 0xc0, 0x4b, 0xfd, 0x40, 0xb0, 0x20, 0xfb, 0x4a, 0x2c, 0x42, 0xd1, 0x5a, 0x1b, + 0x67, 0x81, 0x0f, 0xb0, 0xf8, 0x00, 0x39, 0x6a, 0x0d, 0x1b, 0xdb, 0x92, 0x09, 0xa2, 0x9e, 0x40, + 0x50, 0xbd, 0x6a, 0xec, 0xc9, 0xd0, 0x3e, 0x0d, 0x90, 0xa5, 0xd4, 0xcc, 0xaa, 0x04, 0x6e, 0x0b, + 0x98, 0xf1, 0x19, 0x09, 0x59, 0xda, 0xdc, 0xca, 0x35, 0x23, 0xb6, 0x7a, 0x84, 0xe0, 0xbc, 0x96, + 0x4c, 0xf9, 0x95, 0x36, 0x69, 0xd9, 0x94, 0x49, 0x33, 0x7e, 0x3f, 0x03, 0x55, 0x59, 0x32, 0x0a, + 0x25, 0x6c, 0x1d, 0x98, 0x9a, 0xc5, 0xf0, 0xd2, 0x19, 0x58, 0xc7, 0x57, 0x21, 0x0f, 0x88, 0x68, + 0x76, 0x6e, 0x98, 0x0d, 0x99, 0xd6, 0xbb, 0x74, 0x06, 0x1b, 0x22, 0x85, 0x3d, 0x80, 0x46, 0x02, + 0x3f, 0x08, 0x7d, 0xa2, 0xe8, 0x9d, 0x1b, 0x66, 0x5d, 0xc3, 0xee, 0x86, 0xbe, 0x58, 0x23, 0x42, + 0xe4, 0x99, 0x84, 0x96, 0xe3, 0x0e, 0xf8, 0x25, 0x92, 0x51, 0xcd, 0xac, 0x10, 0xac, 0x23, 0x40, + 0x1b, 0x75, 0xa8, 0xea, 0xc5, 0x19, 0xa7, 0x50, 0x52, 0xf2, 0x12, 0x0a, 0x0c, 0x53, 0x4d, 0x32, + 0xcb, 0x61, 0xd4, 0x92, 0x9b, 0x50, 0x4a, 0xb6, 0xc0, 0x2c, 0x86, 0xaf, 0x5d, 0xb1, 0xf1, 0x3d, + 0x68, 0xec, 0x0a, 0xe2, 0x71, 0x05, 0xb1, 0x4a, 0xf9, 0x6f, 0x05, 0xe6, 0xb4, 0x45, 0x53, 0x36, + 0xe5, 0x97, 0xd8, 0x73, 0xcf, 0xbc, 0x20, 0x94, 0xb5, 0xe0, 0x6f, 0xe3, 0x4f, 0x32, 0xc0, 0xda, + 0x41, 0xe8, 0x8c, 0xec, 0x90, 0x6f, 0xf3, 0x88, 0x2d, 0x1c, 0x40, 0x55, 0x94, 0xd6, 0xf3, 0x5a, + 0x24, 0x90, 0x91, 0x40, 0xf1, 0xbe, 0x5c, 0xc6, 0xb3, 0x19, 0xd6, 0x75, 0x6c, 0x62, 0xf3, 0x89, + 0x02, 0xc4, 0x2a, 0x0b, 0x6d, 0xff, 0x94, 0x87, 0x28, 0xc6, 0x49, 0x79, 0x1f, 0x08, 0x24, 0x04, + 0xb8, 0xb5, 0x5f, 0x86, 0x85, 0x99, 0x32, 0x74, 0xbe, 0x5c, 0x4e, 0xe1, 0xcb, 0x39, 0x9d, 0x2f, + 0x5b, 0xb0, 0x98, 0x68, 0x97, 0xa4, 0xb4, 0x55, 0x28, 0x8a, 0x05, 0x21, 0x84, 0x83, 0x0c, 0x49, + 0x95, 0x27, 0x9c, 0x0b, 0x31, 0xf8, 0x21, 0x2c, 0x9d, 0x70, 0xee, 0xdb, 0x21, 0x26, 0xe2, 0x8a, + 0x11, 0x33, 0x24, 0x0b, 0x5e, 0x90, 0x69, 0x5d, 0x3b, 0x3c, 0xe4, 0xbe, 0x98, 0x29, 0xe3, 0xbf, + 0x65, 0x60, 0x5e, 0x70, 0xd0, 0x3d, 0xdb, 0xbd, 0x52, 0xe3, 0xb4, 0x9b, 0x3a, 0x4e, 0xf7, 0xb5, + 0xcd, 0x50, 0xc3, 0xfe, 0xb2, 0x83, 0x94, 0x9b, 0x1e, 0x24, 0x76, 0x0f, 0xaa, 0x89, 0xb6, 0x16, + 0xb0, 0xad, 0x10, 0x44, 0x8d, 0xfc, 0xf9, 0x87, 0xf1, 0x1d, 0x68, 0xc4, 0xcd, 0x96, 0x63, 0xc8, + 0x20, 0x2f, 0x48, 0x52, 0x16, 0x80, 0xbf, 0x8d, 0x7f, 0x9c, 0x21, 0xc4, 0x4d, 0xcf, 0x89, 0xa4, + 0x53, 0x81, 0x28, 0xe4, 0x5e, 0x85, 0x28, 0x7e, 0x5f, 0x2b, 0xd5, 0xff, 0xfc, 0x9d, 0x15, 0x4b, + 0x27, 0xe0, 0xee, 0xc0, 0xb2, 0x87, 0x43, 0x64, 0xbe, 0x25, 0xb3, 0x28, 0xbe, 0x5b, 0xc3, 0xa1, + 0xf1, 0x2e, 0x2c, 0x68, 0xad, 0x7b, 0x49, 0x3f, 0xf6, 0x81, 0xed, 0x3a, 0x41, 0x78, 0xe4, 0x06, + 0x63, 0x4d, 0x70, 0xbb, 0x05, 0x65, 0xc1, 0x61, 0x45, 0xcb, 0x68, 0xc9, 0x16, 0x4c, 0xc1, 0x72, + 0x45, 0xbb, 0x02, 0x4c, 0xb4, 0x2f, 0x65, 0x62, 0x56, 0x26, 0xda, 0x97, 0x98, 0x68, 0x7c, 0x07, + 0x16, 0x13, 0xe5, 0xc9, 0xaa, 0xdf, 0x84, 0xc2, 0x24, 0xbc, 0xf4, 0x94, 0x68, 0x5e, 0x91, 0x14, + 0x22, 0x14, 0x40, 0x93, 0x52, 0x8c, 0x8f, 0x61, 0x61, 0x9f, 0x5f, 0xc8, 0x45, 0xac, 0x1a, 0xf2, + 0x0e, 0xe4, 0x5f, 0xa1, 0x14, 0x62, 0xba, 0xb1, 0x0e, 0x4c, 0xcf, 0x2c, 0x6b, 0xd5, 0x74, 0xc4, + 0x4c, 0x42, 0x47, 0x34, 0xde, 0x01, 0xd6, 0x75, 0x4e, 0xdd, 0x3d, 0x1e, 0x04, 0xf6, 0x69, 0xb4, + 0xec, 0x1b, 0x90, 0x1b, 0x05, 0xa7, 0x92, 0x47, 0x89, 0x9f, 0xc6, 0x37, 0x61, 0x31, 0x81, 0x27, + 0x0b, 0xbe, 0x0d, 0xe5, 0xc0, 0x39, 0x75, 0x51, 0xb0, 0x92, 0x45, 0xc7, 0x00, 0x63, 0x1b, 0x96, + 0x3e, 0xe5, 0xbe, 0x73, 0x72, 0xf5, 0xaa, 0xe2, 0x93, 0xe5, 0x64, 0xa7, 0xcb, 0x69, 0xc3, 0xf2, + 0x54, 0x39, 0xb2, 0x7a, 0x22, 0x5f, 0x39, 0x93, 0x25, 0x93, 0x3e, 0x34, 0xbe, 0x97, 0xd5, 0xf9, + 0x9e, 0x71, 0x04, 0x6c, 0xd3, 0x73, 0x5d, 0xde, 0x0f, 0x0f, 0x39, 0xf7, 0xe3, 0x53, 0xaa, 0x98, + 0x56, 0x2b, 0x8f, 0x57, 0xe5, 0xc8, 0x4e, 0x33, 0x53, 0x49, 0xc4, 0x0c, 0xf2, 0x63, 0xee, 0x8f, + 0xb0, 0xe0, 0x92, 0x89, 0xbf, 0x8d, 0x65, 0x58, 0x4c, 0x14, 0x2b, 0xf5, 0xfa, 0x47, 0xb0, 0xbc, + 0xe5, 0x04, 0xfd, 0xd9, 0x0a, 0x57, 0xa1, 0x38, 0x9e, 0x1c, 0x5b, 0x49, 0xbe, 0xfc, 0x8c, 0x5f, + 0x09, 0x6d, 0x6f, 0x3a, 0x87, 0x2c, 0xeb, 0xaf, 0x67, 0x20, 0xbf, 0xd3, 0xdb, 0xdd, 0x64, 0x6b, + 0x50, 0x72, 0xdc, 0xbe, 0x37, 0x12, 0x82, 0x17, 0xf5, 0x39, 0xfa, 0xbe, 0x76, 0x81, 0xdd, 0x82, + 0x32, 0xca, 0x6b, 0x42, 0xb5, 0x95, 0xa2, 0x4f, 0x49, 0x00, 0x76, 0xbd, 0xfe, 0x0b, 0xa1, 0x53, + 0xf3, 0xcb, 0xb1, 0xe3, 0xa3, 0xd6, 0xac, 0x94, 0xe1, 0x3c, 0xed, 0xf5, 0x71, 0x02, 0x69, 0xc4, + 0xc6, 0xbf, 0x29, 0x41, 0x51, 0xee, 0xb6, 0xb4, 0x73, 0x87, 0xce, 0x39, 0x8f, 0x77, 0x6e, 0xf1, + 0x25, 0xe4, 0x01, 0x9f, 0x8f, 0xbc, 0x30, 0x12, 0xd8, 0x68, 0x0e, 0xaa, 0x04, 0x94, 0x22, 0x9b, + 0x26, 0x34, 0xd0, 0x11, 0x43, 0x8e, 0x90, 0xfa, 0xfa, 0x56, 0x7e, 0x0b, 0x8a, 0x6a, 0xef, 0xcf, + 0x47, 0x3a, 0xcd, 0x5c, 0x9f, 0xa4, 0xb5, 0x35, 0x28, 0xf5, 0xed, 0xb1, 0xdd, 0x77, 0xc2, 0x2b, + 0xc9, 0x10, 0xa2, 0x6f, 0x51, 0xfa, 0xd0, 0xeb, 0xdb, 0x43, 0xeb, 0xd8, 0x1e, 0xda, 0x6e, 0x9f, + 0x4b, 0xdd, 0xbd, 0x8a, 0xc0, 0x0d, 0x82, 0x09, 0xfd, 0x5c, 0xb6, 0x53, 0x61, 0x91, 0x0a, 0x2f, + 0x5b, 0xaf, 0xd0, 0x84, 0x70, 0xe9, 0x8d, 0x46, 0x8e, 0xd0, 0x32, 0x48, 0x0c, 0xcb, 0x99, 0x65, + 0x82, 0x6c, 0x73, 0xec, 0xad, 0x4c, 0xbe, 0xa0, 0xa1, 0x2b, 0x53, 0x55, 0x04, 0xfc, 0x8c, 0x0e, + 0x12, 0x66, 0x65, 0xb1, 0x9c, 0x26, 0x8b, 0xbd, 0x0f, 0x0b, 0x13, 0x37, 0xe0, 0x61, 0x38, 0xe4, + 0x83, 0xa8, 0x2d, 0x15, 0x44, 0x6a, 0x44, 0x09, 0xaa, 0x39, 0xeb, 0xb0, 0x48, 0x87, 0x0e, 0x81, + 0x1d, 0x7a, 0xc1, 0x99, 0x13, 0x58, 0x81, 0xd0, 0x90, 0x48, 0xdd, 0x5d, 0xc0, 0xa4, 0xae, 0x4c, + 0xe9, 0x92, 0x8a, 0xb4, 0x3a, 0x85, 0xef, 0xf3, 0x3e, 0x77, 0xce, 0xf9, 0x00, 0xe5, 0xb4, 0x9c, + 0xb9, 0x9c, 0xc8, 0x63, 0xca, 0x44, 0x14, 0xba, 0x27, 0x23, 0x6b, 0x32, 0x1e, 0xd8, 0x42, 0x58, + 0xa9, 0x93, 0x30, 0xec, 0x4e, 0x46, 0x47, 0x04, 0x61, 0x8f, 0x40, 0x49, 0x62, 0x52, 0x3e, 0x9c, + 0x4f, 0xf0, 0x33, 0x41, 0xac, 0x66, 0x55, 0x62, 0x90, 0xa0, 0x98, 0x90, 0x39, 0x1b, 0x53, 0x32, + 0x67, 0x13, 0x8a, 0x63, 0xdf, 0x39, 0xb7, 0x43, 0xde, 0x5c, 0x20, 0x06, 0x2e, 0x3f, 0x05, 0x67, + 0x70, 0x5c, 0x27, 0x74, 0xec, 0xd0, 0xf3, 0x9b, 0x0c, 0xd3, 0x62, 0x00, 0x7b, 0x00, 0x0b, 0x48, + 0x23, 0x41, 0x68, 0x87, 0x93, 0x40, 0x4a, 0xa0, 0x8b, 0x48, 0x4c, 0x28, 0x43, 0x77, 0x11, 0x8e, + 0x42, 0x28, 0xfb, 0x26, 0xac, 0x10, 0x59, 0x60, 0x0e, 0x29, 0x59, 0xa3, 0x40, 0xb0, 0x84, 0x43, + 0xb1, 0x88, 0xa9, 0x82, 0xbe, 0xa5, 0x7c, 0x2d, 0xa4, 0x83, 0x27, 0xb0, 0x2a, 0xc9, 0x64, 0x26, + 0xd7, 0x32, 0xe6, 0x5a, 0xa2, 0xe4, 0xa9, 0x6c, 0xeb, 0xb0, 0x20, 0x9a, 0xe4, 0xf4, 0x2d, 0x99, + 0x5b, 0xac, 0x84, 0x15, 0xd1, 0x7a, 0xd4, 0x94, 0xe6, 0x29, 0xd1, 0xc4, 0xb4, 0x67, 0xfc, 0x8a, + 0x7d, 0x0f, 0xe6, 0x89, 0x64, 0x50, 0xbd, 0x42, 0x4e, 0xbf, 0x86, 0x9c, 0x7e, 0x59, 0x9d, 0x70, + 0x46, 0xa9, 0xc8, 0xec, 0xeb, 0xfd, 0xc4, 0xb7, 0x58, 0x0e, 0x43, 0xe7, 0x84, 0x87, 0xce, 0x88, + 0x37, 0x57, 0x89, 0xc0, 0xd4, 0xb7, 0x58, 0xa9, 0x93, 0x31, 0xa6, 0x34, 0x89, 0x2f, 0xd0, 0x17, + 0xd2, 0xee, 0xd0, 0x0b, 0xb8, 0x3a, 0xa2, 0x6a, 0xde, 0x94, 0x8b, 0x50, 0x00, 0x95, 0x0c, 0x29, + 0x04, 0x71, 0x52, 0x7a, 0xa2, 0x83, 0xc4, 0x5b, 0x48, 0x0c, 0x35, 0xd2, 0x7d, 0xd4, 0x61, 0xa2, + 0xd8, 0xc5, 0xcf, 0xec, 0x0b, 0xc5, 0x41, 0x6e, 0xe3, 0xfc, 0x82, 0x00, 0x49, 0xde, 0xf1, 0xd3, + 0x0c, 0x6d, 0x88, 0x92, 0x7f, 0x04, 0x9a, 0x7a, 0x47, 0x9c, 0xc3, 0xf2, 0xdc, 0xe1, 0x95, 0x64, + 0x26, 0x40, 0xa0, 0x03, 0x77, 0x88, 0xab, 0xd9, 0x71, 0x75, 0x14, 0xe2, 0xbd, 0x55, 0x05, 0x44, + 0xa4, 0xbb, 0x50, 0x19, 0x4f, 0x8e, 0x87, 0x4e, 0x9f, 0x50, 0x72, 0x54, 0x0a, 0x81, 0x10, 0x41, + 0xe8, 0xb7, 0x44, 0x51, 0x84, 0x91, 0x47, 0x8c, 0x8a, 0x84, 0x21, 0x0a, 0xf2, 0x76, 0xee, 0x23, + 0x3b, 0xa9, 0x9a, 0xf8, 0xdb, 0xd8, 0x80, 0xa5, 0x64, 0xa3, 0xe5, 0xc6, 0xf3, 0x00, 0x4a, 0x92, + 0x57, 0xa9, 0x83, 0x8f, 0xba, 0x76, 0x14, 0x2d, 0x54, 0xb4, 0x28, 0xdd, 0xf8, 0xad, 0x39, 0x58, + 0x94, 0xd0, 0x4d, 0x31, 0xb4, 0xdd, 0xc9, 0x68, 0x64, 0xfb, 0x29, 0x4c, 0x30, 0xf3, 0x72, 0x26, + 0x98, 0x9d, 0x61, 0x82, 0x49, 0xcd, 0x97, 0x78, 0x68, 0x52, 0xf3, 0x15, 0x73, 0x49, 0xca, 0x88, + 0x7e, 0x0e, 0x5a, 0x93, 0xe0, 0x1e, 0x9d, 0xb7, 0xce, 0xb0, 0xec, 0x42, 0x0a, 0xcb, 0xd6, 0x19, + 0xee, 0xdc, 0x14, 0xc3, 0x7d, 0x13, 0x88, 0x68, 0xd4, 0xec, 0x17, 0x49, 0x3f, 0x41, 0x98, 0x3c, + 0x4c, 0x7d, 0x17, 0xe6, 0xa7, 0x79, 0x1c, 0x31, 0xd3, 0x7a, 0x0a, 0x87, 0x73, 0x46, 0x1c, 0x77, + 0x2b, 0x0d, 0xb9, 0x2c, 0x39, 0x9c, 0x33, 0xe2, 0xbb, 0x98, 0xa2, 0xf0, 0xdb, 0x00, 0x54, 0x37, + 0x2e, 0x1a, 0xc0, 0x45, 0xf3, 0x4e, 0x72, 0x2e, 0xf4, 0x51, 0x5f, 0x17, 0x1f, 0x13, 0x9f, 0xe3, + 0x2a, 0x2a, 0x63, 0x4e, 0x5c, 0x40, 0xcf, 0xa0, 0xee, 0x8d, 0xb9, 0x6b, 0xc5, 0xbc, 0xa6, 0x82, + 0x45, 0xbd, 0xfd, 0x92, 0xa2, 0x3a, 0x0a, 0xd7, 0xac, 0x89, 0xbc, 0xd1, 0x27, 0xdb, 0xa3, 0x81, + 0xe7, 0x5a, 0x69, 0xd5, 0x2f, 0x51, 0x5a, 0x1d, 0x33, 0x47, 0xdf, 0xc6, 0xdf, 0xcc, 0x40, 0x45, + 0x6b, 0x36, 0x5b, 0x86, 0x85, 0xcd, 0x83, 0x83, 0xc3, 0xb6, 0xd9, 0xea, 0x75, 0x3e, 0x6d, 0x5b, + 0x9b, 0xbb, 0x07, 0xdd, 0x76, 0xe3, 0x86, 0x00, 0xef, 0x1e, 0x6c, 0xb6, 0x76, 0xad, 0xed, 0x03, + 0x73, 0x53, 0x81, 0x33, 0x6c, 0x05, 0x98, 0xd9, 0xde, 0x3b, 0xe8, 0xb5, 0x13, 0xf0, 0x2c, 0x6b, + 0x40, 0x75, 0xc3, 0x6c, 0xb7, 0x36, 0x77, 0x24, 0x24, 0xc7, 0x96, 0xa0, 0xb1, 0x7d, 0xb4, 0xbf, + 0xd5, 0xd9, 0x7f, 0x6a, 0x6d, 0xb6, 0xf6, 0x37, 0xdb, 0xbb, 0xed, 0xad, 0x46, 0x9e, 0xd5, 0xa0, + 0xdc, 0xda, 0x68, 0xed, 0x6f, 0x1d, 0xec, 0xb7, 0xb7, 0x1a, 0x05, 0xe3, 0xbb, 0x50, 0x8e, 0x3b, + 0x5a, 0x81, 0xe2, 0xd1, 0xfe, 0xb3, 0xfd, 0x83, 0xcf, 0xf6, 0x1b, 0x37, 0x58, 0x19, 0x0a, 0x58, + 0x7f, 0x23, 0xc3, 0x00, 0xe6, 0xa8, 0xce, 0x46, 0x96, 0x95, 0x20, 0xbf, 0x71, 0xd0, 0xdb, 0x69, + 0xe4, 0x8c, 0xbf, 0xc8, 0xc0, 0x32, 0x76, 0x79, 0x30, 0xcd, 0x04, 0xee, 0x41, 0xa5, 0xef, 0x79, + 0x63, 0xa1, 0x69, 0xc5, 0x12, 0x85, 0x0e, 0x12, 0x0b, 0x9c, 0x98, 0xf7, 0x89, 0xe7, 0xf7, 0xb9, + 0xe4, 0x01, 0x80, 0xa0, 0x6d, 0x01, 0x11, 0x34, 0x28, 0x89, 0x98, 0x30, 0x88, 0x05, 0x54, 0x08, + 0x46, 0x28, 0x2b, 0x30, 0x77, 0xec, 0x73, 0xbb, 0x7f, 0x26, 0x57, 0xbf, 0xfc, 0x62, 0xef, 0xc5, + 0x67, 0x00, 0x7d, 0x41, 0x53, 0x43, 0x3e, 0xc0, 0x25, 0x50, 0x32, 0xe7, 0x25, 0x7c, 0x53, 0x82, + 0xc5, 0x6e, 0x64, 0x1f, 0xdb, 0xee, 0xc0, 0x73, 0xf9, 0x40, 0xaa, 0x1a, 0x31, 0xc0, 0x38, 0x84, + 0x95, 0xe9, 0xfe, 0x49, 0x7e, 0xf1, 0xa1, 0xc6, 0x2f, 0x48, 0xf2, 0x5f, 0xbb, 0x9e, 0x14, 0x34, + 0xde, 0xf1, 0xb7, 0xf3, 0x90, 0x17, 0x92, 0xe0, 0xb5, 0x42, 0xa3, 0x2e, 0xda, 0xe7, 0x66, 0xcc, + 0x3f, 0x78, 0xd4, 0x40, 0x22, 0x02, 0x9d, 0x67, 0x95, 0x11, 0x82, 0xa2, 0x41, 0x94, 0xec, 0xf3, + 0xfe, 0xb9, 0x3c, 0xd0, 0xa2, 0x64, 0x93, 0xf7, 0xcf, 0x51, 0xa7, 0xb2, 0x43, 0xca, 0x4b, 0xeb, + 0xbd, 0x18, 0xd8, 0x21, 0xe6, 0x94, 0x49, 0x98, 0xaf, 0x18, 0x25, 0x61, 0xae, 0x26, 0x14, 0x1d, + 0xf7, 0xd8, 0x9b, 0xb8, 0x03, 0x5c, 0xde, 0x25, 0x53, 0x7d, 0xa2, 0xb5, 0x09, 0x39, 0x91, 0xd8, + 0x88, 0x68, 0x35, 0x97, 0x04, 0xa0, 0x27, 0xb6, 0xa2, 0x0f, 0xa0, 0x1c, 0x5c, 0xb9, 0x7d, 0x7d, + 0x0d, 0x2f, 0xc9, 0xf1, 0x11, 0xbd, 0x5f, 0xef, 0x5e, 0xb9, 0x7d, 0x5c, 0xb1, 0xa5, 0x40, 0xfe, + 0x62, 0x4f, 0xa0, 0x14, 0x9d, 0xfb, 0x12, 0x07, 0xbe, 0xa9, 0xe7, 0x50, 0x87, 0xbd, 0xa4, 0x5e, + 0x47, 0xa8, 0xec, 0x21, 0xcc, 0xe1, 0xe1, 0x6c, 0xd0, 0xac, 0x62, 0x26, 0x25, 0xef, 0x8b, 0x66, + 0xa0, 0xa1, 0x87, 0x0f, 0xf0, 0xa0, 0xd6, 0x94, 0x68, 0x6b, 0xcf, 0xa0, 0x96, 0x28, 0x4b, 0x57, + 0xa2, 0x6b, 0xa4, 0x44, 0xbf, 0xad, 0x2b, 0xd1, 0xf1, 0x4e, 0x20, 0xb3, 0xe9, 0x4a, 0xf5, 0x2f, + 0x43, 0x49, 0x75, 0x45, 0xac, 0x3f, 0xb9, 0x76, 0xac, 0xee, 0xf3, 0xfd, 0xcd, 0xc6, 0x0d, 0x36, + 0x0f, 0x95, 0xd6, 0x26, 0x2e, 0x69, 0x04, 0x64, 0x04, 0xca, 0x61, 0xab, 0xdb, 0x8d, 0x20, 0x59, + 0x63, 0x1b, 0x1a, 0xd3, 0x2d, 0x15, 0x34, 0x19, 0x2a, 0x98, 0x3c, 0xba, 0x8e, 0x01, 0x42, 0x45, + 0xa2, 0xd3, 0x68, 0x92, 0xc3, 0xe9, 0xc3, 0x78, 0x02, 0x0d, 0xb1, 0xaf, 0x89, 0xa1, 0x0a, 0xb4, + 0x23, 0xe0, 0xa1, 0x90, 0xed, 0xf4, 0xe3, 0xeb, 0x92, 0x59, 0x21, 0x18, 0x56, 0x65, 0x7c, 0x08, + 0x0b, 0x5a, 0xb6, 0x58, 0xa5, 0x15, 0x7b, 0xe5, 0xb4, 0x4a, 0x8b, 0x0a, 0x0c, 0xa5, 0x18, 0xab, + 0xb0, 0x2c, 0x3e, 0xdb, 0xe7, 0xdc, 0x0d, 0xbb, 0x93, 0x63, 0xb2, 0x39, 0x3a, 0x9e, 0x2b, 0x14, + 0x9b, 0x72, 0x94, 0x72, 0x3d, 0x91, 0xaf, 0x4b, 0xed, 0x37, 0x8b, 0xa4, 0xb1, 0xa6, 0xd5, 0x80, + 0x19, 0xd7, 0xf1, 0x6f, 0x42, 0x0b, 0x2e, 0x47, 0x20, 0x31, 0xac, 0x87, 0xed, 0xb6, 0x69, 0x1d, + 0xec, 0xef, 0x76, 0xf6, 0x05, 0xa3, 0x14, 0xc3, 0x8a, 0x80, 0xed, 0x6d, 0x84, 0x64, 0x8c, 0x06, + 0xd4, 0x9f, 0xf2, 0xb0, 0xe3, 0x9e, 0x78, 0xca, 0xbe, 0xf6, 0x97, 0x05, 0x98, 0x8f, 0x40, 0xb1, + 0x16, 0x7d, 0xce, 0xfd, 0xc0, 0xf1, 0x5c, 0x14, 0x88, 0xcb, 0xa6, 0xfa, 0x14, 0xbb, 0x9b, 0x33, + 0xe0, 0x6e, 0xe8, 0x84, 0x57, 0x56, 0xe2, 0xc8, 0xad, 0xae, 0xc0, 0x72, 0x17, 0x5d, 0x82, 0x82, + 0x3d, 0x74, 0x6c, 0x65, 0xaa, 0xa5, 0x0f, 0x01, 0xed, 0x7b, 0x43, 0xcf, 0x47, 0xd9, 0xb7, 0x6c, + 0xd2, 0x07, 0x7b, 0x04, 0x4b, 0x42, 0x06, 0xd7, 0xcf, 0x41, 0x91, 0x7f, 0xd0, 0xe9, 0x1f, 0x73, + 0x27, 0xa3, 0xc3, 0xf8, 0x2c, 0x54, 0xa4, 0x88, 0xbd, 0x53, 0xe4, 0x90, 0xc2, 0x52, 0x94, 0x81, + 0xd4, 0xb9, 0x05, 0x77, 0x32, 0x6a, 0x61, 0x4a, 0x84, 0xff, 0x18, 0x96, 0x05, 0x7e, 0x24, 0x5e, + 0x45, 0x39, 0xe6, 0x31, 0x87, 0x28, 0xac, 0x23, 0xd3, 0xa2, 0x3c, 0xb7, 0xa0, 0x4c, 0xad, 0x12, + 0x33, 0x5e, 0x20, 0x31, 0x1e, 0x9b, 0xc2, 0xfd, 0x60, 0xc6, 0xaa, 0x3a, 0x47, 0x82, 0xc0, 0x94, + 0x55, 0x55, 0xb3, 0xcb, 0x96, 0xa6, 0xed, 0xb2, 0x8f, 0x61, 0xf9, 0x58, 0x90, 0xe0, 0x19, 0xb7, + 0x07, 0xdc, 0xb7, 0x62, 0xc2, 0x26, 0x75, 0x65, 0x51, 0x24, 0xee, 0x60, 0x5a, 0xb4, 0x0e, 0x84, + 0x9c, 0x23, 0xd8, 0x02, 0x1f, 0x58, 0xa1, 0x67, 0xa1, 0xf8, 0x83, 0x0c, 0xa6, 0x64, 0xd6, 0x08, + 0xdc, 0xf3, 0x36, 0x05, 0x30, 0x89, 0x77, 0xea, 0xdb, 0xe3, 0x33, 0xa9, 0x50, 0x44, 0x78, 0x4f, + 0x05, 0x90, 0xdd, 0x86, 0xa2, 0x20, 0x79, 0x97, 0x93, 0xf1, 0x8b, 0x44, 0x76, 0x05, 0x62, 0x6f, + 0xc3, 0x1c, 0xd6, 0x11, 0x34, 0x1b, 0x48, 0xef, 0xd5, 0x98, 0x91, 0x3b, 0xae, 0x29, 0xd3, 0x84, + 0x30, 0x39, 0xf1, 0x1d, 0xe2, 0x32, 0x65, 0x13, 0x7f, 0xb3, 0xef, 0x6b, 0x2c, 0x6b, 0x11, 0xf3, + 0x2a, 0x79, 0x60, 0x8a, 0xd2, 0xae, 0xe3, 0x5e, 0x5f, 0x29, 0x33, 0xfa, 0x41, 0xbe, 0x54, 0x69, + 0x54, 0x8d, 0x6f, 0x43, 0x81, 0x46, 0x47, 0x10, 0x21, 0x8e, 0x5d, 0x46, 0x12, 0x21, 0x42, 0x9b, + 0x50, 0x74, 0x79, 0x78, 0xe1, 0xf9, 0x2f, 0xd4, 0xa1, 0xb4, 0xfc, 0x34, 0x7e, 0x8c, 0xa7, 0x29, + 0x91, 0xc5, 0x9d, 0x14, 0x43, 0x41, 0x1e, 0x34, 0xbd, 0xc1, 0x99, 0x2d, 0x0f, 0x78, 0x4a, 0x08, + 0xe8, 0x9e, 0xd9, 0x33, 0xe4, 0x91, 0x9d, 0x35, 0xba, 0xbf, 0x0d, 0x75, 0x65, 0xe3, 0x0f, 0xac, + 0x21, 0x3f, 0x09, 0x25, 0xb9, 0x57, 0xa5, 0x81, 0x3f, 0xd8, 0xe5, 0x27, 0xa1, 0xb1, 0x07, 0x0b, + 0x92, 0x20, 0x0f, 0xc6, 0x5c, 0x55, 0xfd, 0x9d, 0x34, 0x79, 0xba, 0xf2, 0x78, 0x31, 0xb9, 0xd1, + 0x92, 0xef, 0x42, 0x42, 0xc8, 0x36, 0x3e, 0x01, 0xa6, 0x6f, 0xc3, 0xb2, 0x3c, 0x29, 0xd5, 0xaa, + 0xb3, 0x7c, 0x65, 0x12, 0x8b, 0x64, 0x67, 0x67, 0x20, 0x46, 0x27, 0x98, 0xf4, 0xfb, 0xca, 0xf7, + 0xa2, 0x64, 0xaa, 0x4f, 0xe3, 0x4f, 0x33, 0xb0, 0x88, 0x85, 0x29, 0x7d, 0x40, 0x32, 0xd9, 0x9f, + 0xb9, 0x91, 0x62, 0x7e, 0x74, 0xd9, 0x87, 0x3e, 0xbe, 0xfc, 0xe9, 0x69, 0x7e, 0xe6, 0xf4, 0xf4, + 0x3d, 0x68, 0x0c, 0xf8, 0xd0, 0x41, 0x37, 0x1c, 0x25, 0x4a, 0x90, 0x06, 0x30, 0xaf, 0xe0, 0x52, + 0x1b, 0x34, 0xfe, 0x41, 0x06, 0x16, 0x48, 0x52, 0x41, 0xbd, 0x5a, 0x0e, 0xd4, 0xc7, 0x4a, 0x91, + 0x94, 0xac, 0x4a, 0xf6, 0x29, 0xde, 0xc1, 0x11, 0x4a, 0xc8, 0x3b, 0x37, 0xa4, 0x82, 0x29, 0xa1, + 0xec, 0x23, 0xd4, 0x61, 0x5c, 0x0b, 0x81, 0x29, 0x6e, 0x3d, 0xc9, 0x49, 0xd9, 0xb9, 0x81, 0x0a, + 0x8e, 0x8b, 0xa0, 0x8d, 0x92, 0xd0, 0x6c, 0x05, 0xd8, 0xd8, 0x86, 0x5a, 0xa2, 0x9a, 0xc4, 0x11, + 0x6f, 0x95, 0x8e, 0x78, 0x67, 0xcc, 0x28, 0xd9, 0x59, 0x33, 0xca, 0x15, 0x2c, 0x9a, 0xdc, 0x1e, + 0x5c, 0x6d, 0x7b, 0xfe, 0x61, 0x70, 0x1c, 0x6e, 0x93, 0xf8, 0x27, 0xf8, 0x7b, 0x64, 0x1b, 0x4c, + 0x9c, 0xa3, 0x2a, 0x13, 0x91, 0x52, 0x97, 0xbf, 0x06, 0xf5, 0xd8, 0x88, 0xa8, 0x9d, 0xc5, 0xd5, + 0x22, 0x3b, 0x22, 0x1e, 0xc9, 0x09, 0x55, 0x33, 0x38, 0x0e, 0xe5, 0x69, 0x1c, 0xfe, 0x36, 0xfe, + 0x46, 0x1e, 0x98, 0xa0, 0xe6, 0x29, 0x82, 0x99, 0x32, 0x7f, 0x66, 0x67, 0xcc, 0x9f, 0x8f, 0x80, + 0x69, 0x08, 0xca, 0x2a, 0x9b, 0x8b, 0xac, 0xb2, 0x8d, 0x18, 0x57, 0x1a, 0x65, 0x1f, 0xc1, 0x92, + 0x94, 0xa5, 0x93, 0x4d, 0x25, 0xd2, 0x60, 0x24, 0x54, 0x27, 0xda, 0xab, 0x4c, 0x9f, 0x42, 0xfd, + 0xa7, 0xd3, 0x36, 0x34, 0x7d, 0x2a, 0xc5, 0x5f, 0x23, 0xc0, 0xb9, 0x57, 0x12, 0x60, 0x71, 0x86, + 0x00, 0xb5, 0xc3, 0x9f, 0x52, 0xf2, 0xf0, 0xc7, 0x80, 0x9a, 0x32, 0x70, 0x92, 0x5f, 0x07, 0x09, + 0x8e, 0x15, 0x69, 0xe5, 0x44, 0xdf, 0x8e, 0xfb, 0xd0, 0x50, 0x27, 0x34, 0xd1, 0xf1, 0x12, 0xf9, + 0x2c, 0xc8, 0x03, 0xbe, 0x4d, 0x75, 0xc8, 0x94, 0x38, 0xcc, 0xaf, 0x4c, 0x1d, 0xe6, 0xbf, 0x0f, + 0x0b, 0x81, 0xa0, 0x5f, 0x6b, 0xe2, 0x4a, 0x07, 0x23, 0x3e, 0x40, 0xad, 0xad, 0x64, 0x36, 0x30, + 0xe1, 0x28, 0x86, 0xcf, 0x1e, 0x9d, 0xd4, 0x52, 0x8e, 0x4e, 0x9e, 0xc4, 0xb6, 0xc0, 0xe0, 0xcc, + 0x19, 0xa1, 0xcc, 0x10, 0x3b, 0xe3, 0xc8, 0x01, 0xee, 0x9e, 0x39, 0x23, 0x53, 0x19, 0x9e, 0xc5, + 0x87, 0xf1, 0x7f, 0x32, 0xd0, 0x10, 0x74, 0x90, 0x58, 0x62, 0xdf, 0x05, 0x64, 0x06, 0xaf, 0xb9, + 0xc2, 0x2a, 0x02, 0x57, 0x2d, 0xb0, 0x6f, 0x03, 0xae, 0x18, 0x4b, 0xa8, 0xa8, 0x72, 0x7d, 0x35, + 0x93, 0xeb, 0x2b, 0xe6, 0xa1, 0x3b, 0x37, 0x48, 0xf7, 0x10, 0x10, 0xf6, 0x5d, 0x28, 0x0b, 0xc2, + 0x44, 0x2a, 0x91, 0x3e, 0x60, 0x4a, 0xf2, 0x4a, 0x59, 0x23, 0x22, 0xeb, 0x58, 0x7e, 0xa6, 0x99, + 0x6f, 0xf3, 0x29, 0xe6, 0x5b, 0x6d, 0x01, 0xef, 0x00, 0x3c, 0xe3, 0x57, 0xbb, 0x5e, 0x1f, 0xf5, + 0xca, 0x3b, 0x00, 0x82, 0x96, 0x4f, 0xec, 0x91, 0x23, 0xcf, 0x84, 0x0a, 0x66, 0xf9, 0x05, 0xbf, + 0xda, 0x46, 0x80, 0x98, 0x48, 0x91, 0x1c, 0xaf, 0xe2, 0x82, 0x59, 0x7a, 0xc1, 0xaf, 0x68, 0x09, + 0x5b, 0x50, 0x7b, 0xc6, 0xaf, 0xb6, 0x38, 0x09, 0x99, 0x9e, 0x2f, 0x88, 0xc8, 0xb7, 0x2f, 0x84, + 0x54, 0x99, 0x30, 0xbd, 0x56, 0x7c, 0xfb, 0xe2, 0x19, 0xbf, 0x52, 0x66, 0xe0, 0xa2, 0x48, 0x1f, + 0x7a, 0x7d, 0xb9, 0x6f, 0x2a, 0x27, 0x92, 0xb8, 0x51, 0xe6, 0xdc, 0x0b, 0xfc, 0x6d, 0xfc, 0x55, + 0x06, 0x6a, 0xa2, 0xfd, 0xc8, 0x96, 0xc5, 0x94, 0x29, 0x5f, 0xa4, 0x4c, 0xec, 0x8b, 0xf4, 0x58, + 0x72, 0x35, 0xe2, 0xf1, 0xd9, 0xeb, 0x79, 0x3c, 0xce, 0x0d, 0x31, 0xf8, 0x0f, 0xa0, 0x4c, 0xcb, + 0x52, 0xac, 0xf3, 0x5c, 0x62, 0x82, 0x13, 0x1d, 0x32, 0x4b, 0x88, 0xf6, 0x8c, 0x5c, 0x1f, 0xb4, + 0xf3, 0x45, 0x1a, 0xe2, 0xb2, 0x1f, 0x9d, 0x2a, 0xa6, 0x4c, 0x43, 0xe1, 0x1a, 0xd7, 0x07, 0xfd, + 0xf0, 0x6e, 0x6e, 0xe6, 0xf0, 0xee, 0x00, 0x4a, 0x62, 0xaa, 0xb1, 0xb3, 0x29, 0x85, 0x66, 0xd2, + 0x0a, 0x15, 0x92, 0x80, 0x2d, 0x36, 0x05, 0xc1, 0xe8, 0xb2, 0x52, 0x12, 0xb0, 0x03, 0x7e, 0x88, + 0xcc, 0x2e, 0x03, 0x15, 0x6d, 0x05, 0xe0, 0xf9, 0x67, 0x34, 0x5e, 0xb4, 0x5c, 0x92, 0x24, 0x9e, + 0x18, 0xf0, 0x9d, 0x1b, 0x66, 0xad, 0x9f, 0x98, 0x81, 0x75, 0x49, 0xab, 0x98, 0x33, 0x9b, 0x70, + 0x9b, 0x52, 0x0d, 0x57, 0x04, 0x2a, 0x7e, 0x6f, 0xcc, 0x41, 0x5e, 0xa0, 0x1a, 0x1f, 0xc3, 0x82, + 0xd6, 0x0c, 0x52, 0xf3, 0x5f, 0xb7, 0x87, 0xc6, 0xaf, 0x45, 0x99, 0x45, 0x1d, 0x64, 0xa1, 0x52, + 0x6e, 0x24, 0x7c, 0x40, 0x1d, 0x97, 0xee, 0x2a, 0x04, 0x12, 0x68, 0xaf, 0xed, 0xda, 0xf0, 0x1b, + 0xb0, 0xa8, 0x95, 0xbe, 0xed, 0xb8, 0xf6, 0xd0, 0xf9, 0x31, 0x6e, 0xf8, 0x81, 0x73, 0xea, 0x4e, + 0x95, 0x4f, 0xa0, 0x2f, 0x55, 0xfe, 0x3f, 0xcc, 0xc2, 0x92, 0xac, 0x00, 0x1d, 0x03, 0x1d, 0x21, + 0xc5, 0xed, 0x05, 0xa7, 0xec, 0xbb, 0x50, 0x13, 0x63, 0x63, 0xf9, 0xfc, 0xd4, 0x09, 0x42, 0xae, + 0x2c, 0x63, 0x29, 0x8c, 0x4b, 0x6c, 0xe6, 0x02, 0xd5, 0x94, 0x98, 0xec, 0x63, 0xa8, 0x60, 0x56, + 0x3a, 0x46, 0x91, 0x13, 0xd1, 0x9c, 0xcd, 0x48, 0x03, 0xbd, 0x73, 0xc3, 0x84, 0x20, 0x1e, 0xf6, + 0x8f, 0xa1, 0x82, 0x73, 0x78, 0x8e, 0x03, 0x39, 0xc5, 0xaa, 0x66, 0x06, 0x5a, 0x64, 0x1e, 0xc7, + 0xc3, 0xde, 0x82, 0x1a, 0x31, 0x2b, 0x39, 0x4e, 0xd2, 0xe1, 0x68, 0x6d, 0x36, 0xbb, 0x1a, 0x49, + 0xd1, 0xf8, 0xb1, 0xf6, 0xbd, 0x51, 0x86, 0x62, 0xe8, 0x3b, 0xa7, 0xa7, 0xdc, 0x37, 0x56, 0xa2, + 0xa1, 0x11, 0x5c, 0x98, 0x77, 0x43, 0x3e, 0x16, 0xb2, 0xb9, 0xf1, 0xef, 0x32, 0x50, 0x91, 0x7c, + 0xf5, 0x67, 0x36, 0xc7, 0xad, 0x69, 0x9e, 0xb5, 0x74, 0x62, 0x13, 0x3b, 0xd2, 0xbe, 0x0b, 0xf3, + 0x23, 0x21, 0xa7, 0x0b, 0x3d, 0x32, 0x61, 0x8b, 0xab, 0x2b, 0xb0, 0x14, 0x93, 0xd7, 0x61, 0x11, + 0xa5, 0xe6, 0xc0, 0x0a, 0x9d, 0xa1, 0xa5, 0x12, 0xa5, 0x17, 0xeb, 0x02, 0x25, 0xf5, 0x9c, 0xe1, + 0x9e, 0x4c, 0x10, 0xc2, 0x63, 0x10, 0xda, 0xa7, 0x5c, 0xae, 0x6d, 0xfa, 0x30, 0x9a, 0xb0, 0x32, + 0xa5, 0x42, 0x2a, 0xf5, 0xf7, 0x7f, 0x2d, 0xc0, 0xea, 0x4c, 0x92, 0x54, 0x83, 0x23, 0x1b, 0xd4, + 0xd0, 0x19, 0x1d, 0x7b, 0xd1, 0x09, 0x6d, 0x46, 0xb3, 0x41, 0xed, 0x8a, 0x14, 0x75, 0x42, 0xcb, + 0x61, 0x59, 0x11, 0x24, 0x1e, 0xb1, 0x46, 0x5a, 0x66, 0x16, 0x75, 0xa0, 0x0f, 0x92, 0x9b, 0xd8, + 0x74, 0x75, 0x0a, 0xae, 0x8b, 0x46, 0x8b, 0xe3, 0x19, 0x58, 0xc0, 0x7e, 0x13, 0x9a, 0x11, 0xdd, + 0x4b, 0xb1, 0x5d, 0x53, 0x99, 0x45, 0x4d, 0x5f, 0x7f, 0x45, 0x4d, 0x89, 0xb3, 0x3b, 0x94, 0x9d, + 0x56, 0xd4, 0x92, 0xa1, 0x02, 0xa3, 0xba, 0xce, 0xe1, 0x0d, 0x55, 0x17, 0x8a, 0xe1, 0xb3, 0x35, + 0xe6, 0x5f, 0xab, 0x6f, 0x78, 0x2e, 0x99, 0xa8, 0xd6, 0xbc, 0x25, 0x0b, 0x8e, 0x92, 0xf4, 0x7a, + 0xcf, 0x60, 0xe5, 0xc2, 0x76, 0x42, 0xd5, 0x47, 0x4d, 0x63, 0x2f, 0x60, 0x7d, 0x8f, 0x5f, 0x51, + 0xdf, 0x67, 0x94, 0x39, 0xa1, 0x98, 0x2c, 0x5d, 0xcc, 0x02, 0x83, 0xb5, 0xbf, 0x9b, 0x83, 0x7a, + 0xb2, 0x14, 0xc1, 0x58, 0xe4, 0x66, 0xa3, 0xe4, 0x4d, 0x29, 0x04, 0x4b, 0xeb, 0xc1, 0x3e, 0xc9, + 0x99, 0xb3, 0x76, 0x8d, 0x6c, 0x8a, 0x5d, 0x43, 0x37, 0x27, 0xe4, 0x5e, 0x65, 0xbf, 0xcd, 0xbf, + 0x96, 0xfd, 0xb6, 0x90, 0x66, 0xbf, 0xbd, 0xde, 0xe8, 0x37, 0xf7, 0x33, 0x19, 0xfd, 0x8a, 0x2f, + 0x31, 0xfa, 0x25, 0x4c, 0x95, 0xa5, 0x69, 0x53, 0x65, 0x8a, 0x89, 0xaf, 0xfc, 0x25, 0x4c, 0x7c, + 0x6b, 0x7f, 0x95, 0x01, 0x36, 0xbb, 0x16, 0xd8, 0x53, 0x32, 0x10, 0xb9, 0x7c, 0x28, 0xf9, 0xf4, + 0x37, 0x5e, 0x6f, 0x3d, 0xa9, 0xe9, 0x57, 0xb9, 0xd9, 0x43, 0x58, 0xd4, 0x3d, 0xeb, 0x75, 0x1d, + 0xbd, 0x66, 0x32, 0x3d, 0x29, 0x3e, 0xc9, 0xd1, 0x4c, 0xe3, 0xf9, 0x57, 0x9a, 0xc6, 0x0b, 0xaf, + 0x34, 0x8d, 0xcf, 0x25, 0x4d, 0xe3, 0x6b, 0xff, 0x29, 0x03, 0x8b, 0x29, 0x24, 0xfb, 0xd5, 0xf5, + 0x59, 0x50, 0x5a, 0x82, 0x89, 0x65, 0x25, 0xa5, 0xe9, 0xfc, 0x6b, 0x17, 0x2a, 0xf1, 0x54, 0xa8, + 0xc8, 0x93, 0x07, 0xaf, 0xe2, 0x25, 0x71, 0x0e, 0x53, 0xcf, 0xbe, 0xf6, 0x07, 0x59, 0xa8, 0x68, + 0x89, 0x62, 0x14, 0x89, 0x40, 0x35, 0x8f, 0x24, 0x92, 0x03, 0xf1, 0x84, 0xe1, 0x2e, 0x48, 0x13, + 0x06, 0xa5, 0xd3, 0x52, 0x92, 0x42, 0x1f, 0x22, 0xac, 0xc3, 0xa2, 0x32, 0xde, 0xf1, 0xd8, 0xf1, + 0x50, 0xee, 0x2c, 0x0b, 0xd2, 0x84, 0xc7, 0x23, 0x3f, 0x46, 0xf6, 0x50, 0x29, 0x7f, 0xf1, 0xdc, + 0x21, 0x61, 0x93, 0x7d, 0x60, 0x81, 0x96, 0x83, 0x9a, 0x44, 0x41, 0xd5, 0x1f, 0xc0, 0xb2, 0x5a, + 0x0c, 0xc9, 0x1c, 0x64, 0x32, 0x60, 0x72, 0x29, 0xe8, 0x59, 0xbe, 0x0f, 0x77, 0xa6, 0xda, 0x34, + 0x95, 0x95, 0x3c, 0x64, 0x6f, 0x26, 0x5a, 0xa7, 0x97, 0xb0, 0xf6, 0x13, 0xa8, 0x25, 0xd8, 0xe2, + 0x57, 0x37, 0xe5, 0xd3, 0xa7, 0x3a, 0x34, 0xa2, 0xfa, 0xa9, 0xce, 0xda, 0xff, 0xce, 0x01, 0x9b, + 0xe5, 0xcc, 0xbf, 0xc8, 0x26, 0xcc, 0x12, 0x66, 0x2e, 0x85, 0x30, 0xff, 0x9f, 0x49, 0x0b, 0xef, + 0xc3, 0x82, 0x8c, 0xc0, 0xd2, 0x2c, 0xb0, 0xb4, 0x38, 0x1b, 0x51, 0x82, 0x6a, 0xc5, 0xb7, 0xa7, + 0x3d, 0x41, 0x4a, 0x89, 0xa0, 0x13, 0x4d, 0x5c, 0x9a, 0x72, 0x08, 0x39, 0x82, 0x39, 0xdb, 0xed, + 0x9f, 0x79, 0xbe, 0xe4, 0x83, 0xbf, 0xf4, 0xa5, 0x37, 0xcb, 0xf5, 0x16, 0xe6, 0x47, 0x19, 0xcd, + 0x94, 0x85, 0x19, 0x1f, 0x40, 0x45, 0x03, 0xa3, 0x55, 0xb2, 0xb3, 0xb7, 0x71, 0xd0, 0xb8, 0xc1, + 0x6a, 0x50, 0x36, 0xdb, 0x9b, 0x07, 0x9f, 0xb6, 0xcd, 0xf6, 0x56, 0x23, 0xc3, 0x4a, 0x90, 0xdf, + 0x3d, 0xe8, 0xf6, 0x1a, 0x59, 0x63, 0x0d, 0x9a, 0xb2, 0xc4, 0x59, 0x0b, 0xc5, 0xef, 0xe6, 0xa3, + 0xc3, 0x41, 0x4c, 0x94, 0x0a, 0xf9, 0x37, 0xa1, 0xaa, 0x0b, 0x33, 0x92, 0x22, 0xa6, 0x9c, 0x00, + 0x84, 0x2a, 0xee, 0x69, 0xbc, 0x7a, 0x13, 0xc8, 0xb4, 0x3b, 0x88, 0xb2, 0x65, 0x13, 0x52, 0x6a, + 0x8a, 0x2d, 0x10, 0x55, 0x9d, 0x04, 0x19, 0xfe, 0x7f, 0x50, 0x4f, 0x1e, 0xd7, 0x4b, 0x8e, 0x94, + 0xa6, 0x5e, 0x8a, 0xdc, 0x89, 0xf3, 0x7b, 0xf6, 0x7d, 0x68, 0x4c, 0x1f, 0xf7, 0x4b, 0x51, 0xf9, + 0x9a, 0xfc, 0xf3, 0x4e, 0xd2, 0x02, 0xc0, 0x76, 0x60, 0x29, 0x4d, 0x9c, 0x43, 0xfa, 0xb8, 0xfe, + 0x48, 0x82, 0xcd, 0x8a, 0x6c, 0xec, 0x3b, 0xd2, 0xaa, 0x53, 0x48, 0xb3, 0x8d, 0x6b, 0x83, 0xbd, + 0x4e, 0xff, 0x34, 0xfb, 0xce, 0x39, 0x40, 0x0c, 0x63, 0x0d, 0xa8, 0x1e, 0x1c, 0xb6, 0xf7, 0xad, + 0xcd, 0x9d, 0xd6, 0xfe, 0x7e, 0x7b, 0xb7, 0x71, 0x83, 0x31, 0xa8, 0xa3, 0x51, 0x7b, 0x2b, 0x82, + 0x65, 0x04, 0x4c, 0x5a, 0xd7, 0x14, 0x2c, 0xcb, 0x96, 0xa0, 0xd1, 0xd9, 0x9f, 0x82, 0xe6, 0x58, + 0x13, 0x96, 0x0e, 0xdb, 0x64, 0x07, 0x4f, 0x94, 0x9b, 0x17, 0x2a, 0x82, 0xec, 0xae, 0x50, 0x11, + 0x28, 0x92, 0x50, 0xae, 0x03, 0x25, 0x39, 0xff, 0x5e, 0x06, 0x96, 0xa7, 0x12, 0xe2, 0xf8, 0x10, + 0x92, 0x9b, 0x93, 0x12, 0x73, 0x15, 0x81, 0x6a, 0x35, 0xbd, 0x0f, 0x0b, 0xd1, 0x31, 0xd3, 0xd4, + 0xae, 0xd4, 0x88, 0x12, 0x14, 0xf2, 0x43, 0x58, 0xd4, 0x4e, 0xab, 0xa6, 0x78, 0x05, 0xd3, 0x92, + 0x64, 0x06, 0x63, 0x35, 0xf2, 0xc3, 0x9f, 0x6a, 0xf5, 0x80, 0xc2, 0x13, 0xf5, 0x84, 0xd8, 0xe8, + 0x95, 0x6c, 0xaf, 0xfa, 0x64, 0x8f, 0xa6, 0x08, 0x21, 0xd9, 0x5a, 0x7d, 0xc2, 0x55, 0xf5, 0x7f, + 0x38, 0x07, 0xec, 0x93, 0x09, 0xf7, 0xaf, 0x30, 0xfe, 0x23, 0x78, 0x95, 0x43, 0xa4, 0x3a, 0x57, + 0xc9, 0xbe, 0x56, 0x8c, 0x57, 0x5a, 0x8c, 0x55, 0xfe, 0xd5, 0x31, 0x56, 0x85, 0x57, 0xc5, 0x58, + 0xbd, 0x05, 0x35, 0xe7, 0xd4, 0xf5, 0x04, 0x2b, 0x14, 0x72, 0x6f, 0xd0, 0x9c, 0xbb, 0x97, 0xbb, + 0x5f, 0x35, 0xab, 0x12, 0x28, 0xa4, 0xde, 0x80, 0x7d, 0x1c, 0x23, 0xf1, 0xc1, 0x29, 0xc6, 0x03, + 0xea, 0x4c, 0xb0, 0x3d, 0x38, 0xe5, 0xf2, 0x18, 0x09, 0xf5, 0x0a, 0x95, 0x59, 0xc0, 0x03, 0xf6, + 0x36, 0xd4, 0x03, 0x6f, 0x22, 0xd4, 0x08, 0x35, 0x0c, 0x64, 0x16, 0xab, 0x12, 0xf4, 0x50, 0xd9, + 0x40, 0x17, 0x27, 0x01, 0xb7, 0x46, 0x4e, 0x10, 0x08, 0xf1, 0xac, 0xef, 0xb9, 0xa1, 0xef, 0x0d, + 0xa5, 0xa5, 0x6b, 0x61, 0x12, 0xf0, 0x3d, 0x4a, 0xd9, 0xa4, 0x04, 0xf6, 0xad, 0xb8, 0x49, 0x63, + 0xdb, 0xf1, 0x83, 0x26, 0x60, 0x93, 0x54, 0x4f, 0x51, 0x5a, 0xb7, 0x1d, 0x3f, 0x6a, 0x8b, 0xf8, + 0x08, 0xa6, 0x62, 0xbf, 0x2a, 0xd3, 0xb1, 0x5f, 0x3f, 0x4a, 0x8f, 0xfd, 0xaa, 0x61, 0xd1, 0x8f, + 0x64, 0xd1, 0xb3, 0x53, 0xfc, 0xa5, 0x42, 0xc0, 0x66, 0x43, 0xda, 0xea, 0x5f, 0x26, 0xa4, 0x6d, + 0x3e, 0x2d, 0xa4, 0xed, 0x03, 0xa8, 0x60, 0xb0, 0x91, 0x75, 0xe6, 0x08, 0x19, 0x8e, 0x2c, 0x77, + 0x0d, 0x3d, 0x1a, 0x69, 0xc7, 0x71, 0x43, 0x13, 0x7c, 0xf5, 0x33, 0x98, 0x8d, 0x2e, 0x5b, 0xf8, + 0x05, 0x46, 0x97, 0xc9, 0xa0, 0xa8, 0x75, 0x28, 0xa9, 0x79, 0x62, 0x0c, 0xf2, 0x27, 0xbe, 0x37, + 0x52, 0x16, 0x0d, 0xf1, 0x9b, 0xd5, 0x21, 0x1b, 0x7a, 0x32, 0x73, 0x36, 0xf4, 0x8c, 0x5f, 0x87, + 0x8a, 0x46, 0x6a, 0xec, 0x4d, 0x3a, 0x85, 0x14, 0x9a, 0x98, 0x94, 0x2d, 0x69, 0x14, 0xcb, 0x12, + 0xda, 0x19, 0x08, 0x7e, 0x33, 0x70, 0x7c, 0x8e, 0x71, 0xa0, 0x96, 0xcf, 0xcf, 0xb9, 0x1f, 0x28, + 0x0b, 0x53, 0x23, 0x4a, 0x30, 0x09, 0x6e, 0xfc, 0x06, 0x2c, 0x26, 0xe6, 0x56, 0xb2, 0x88, 0xb7, + 0x61, 0x0e, 0xc7, 0x4d, 0x79, 0x00, 0x24, 0xa3, 0xbc, 0x64, 0x1a, 0x06, 0xf8, 0x93, 0x71, 0xcc, + 0x1a, 0xfb, 0xde, 0x31, 0x56, 0x92, 0x31, 0x2b, 0x12, 0x76, 0xe8, 0x7b, 0xc7, 0xc6, 0x9f, 0xe7, + 0x20, 0xb7, 0xe3, 0x8d, 0x75, 0xa7, 0xb7, 0xcc, 0x8c, 0xd3, 0x9b, 0x54, 0x2f, 0xad, 0x48, 0x7d, + 0x94, 0x32, 0x3b, 0x9a, 0x85, 0x94, 0x0a, 0x79, 0x1f, 0xea, 0x82, 0x4f, 0x84, 0x9e, 0xd0, 0xcf, + 0x2f, 0x6c, 0x9f, 0x04, 0xe2, 0x1c, 0x2d, 0x3e, 0x7b, 0x14, 0xf6, 0xbc, 0x6d, 0x82, 0xb3, 0x25, + 0xc8, 0x45, 0xea, 0x0b, 0x26, 0x8b, 0x4f, 0xb6, 0x02, 0x73, 0xe8, 0xfd, 0x7c, 0x25, 0x4d, 0xdc, + 0xf2, 0x8b, 0x7d, 0x03, 0x16, 0x93, 0xe5, 0x12, 0x2b, 0x92, 0xb2, 0x91, 0x5e, 0x30, 0xf2, 0xa4, + 0x9b, 0x20, 0xf8, 0x08, 0xe1, 0x48, 0x4f, 0x99, 0x13, 0xce, 0x31, 0x49, 0x63, 0x7a, 0xa5, 0x04, + 0xd3, 0xbb, 0x0b, 0x95, 0x70, 0x78, 0x6e, 0x8d, 0xed, 0xab, 0xa1, 0x67, 0x0f, 0xe4, 0xfa, 0x86, + 0x70, 0x78, 0x7e, 0x48, 0x10, 0xf6, 0x10, 0x60, 0x34, 0x1e, 0xcb, 0xb5, 0x87, 0xa6, 0x8e, 0x98, + 0x94, 0xf7, 0x0e, 0x0f, 0x89, 0xe4, 0xcc, 0xf2, 0x68, 0x3c, 0xa6, 0x9f, 0x6c, 0x0b, 0xea, 0xa9, + 0xb1, 0x9a, 0x77, 0x94, 0xb3, 0xae, 0x37, 0x5e, 0x4f, 0x59, 0x9c, 0xb5, 0xbe, 0x0e, 0x5b, 0xfb, + 0x3e, 0xb0, 0x9f, 0x33, 0x62, 0xb2, 0x07, 0xe5, 0xa8, 0x7d, 0x7a, 0xc0, 0x21, 0xba, 0xdf, 0x57, + 0x12, 0x01, 0x87, 0xad, 0xc1, 0xc0, 0x17, 0x7c, 0x91, 0x36, 0xcc, 0x88, 0xe5, 0x83, 0xb6, 0x63, + 0xb6, 0x88, 0xef, 0x1b, 0xff, 0x35, 0x03, 0x05, 0x8a, 0x7e, 0x7c, 0x07, 0xe6, 0x09, 0x3f, 0x72, + 0x20, 0x94, 0x86, 0x71, 0xda, 0x77, 0x7b, 0xd2, 0x77, 0x50, 0x2c, 0x0b, 0x2d, 0x72, 0x3b, 0x1b, + 0xcd, 0xbc, 0x16, 0xbd, 0x7d, 0x17, 0xca, 0x51, 0xd5, 0x1a, 0xe9, 0x94, 0x54, 0xcd, 0xec, 0x0d, + 0xc8, 0x9f, 0x79, 0x63, 0x75, 0xce, 0x03, 0xf1, 0x48, 0x9a, 0x08, 0x8f, 0xdb, 0x22, 0xea, 0xa0, + 0xc6, 0xcb, 0xf3, 0x89, 0xa8, 0x12, 0x24, 0x83, 0xd9, 0x3e, 0xce, 0xa5, 0xf4, 0xf1, 0x08, 0xe6, + 0x05, 0x1f, 0xd0, 0x1c, 0x54, 0xae, 0xdf, 0x34, 0xdf, 0x13, 0x12, 0x5e, 0x7f, 0x38, 0x19, 0x70, + 0xfd, 0xa4, 0x0d, 0xbd, 0xd9, 0x24, 0x5c, 0x49, 0xd6, 0xc6, 0x1f, 0x66, 0x88, 0xbf, 0x88, 0x72, + 0xd9, 0x7d, 0xc8, 0x8b, 0xfd, 0x6d, 0xea, 0xdc, 0x3d, 0x8a, 0x83, 0x10, 0x78, 0x26, 0x62, 0xe0, + 0x75, 0x07, 0x93, 0x51, 0xb2, 0xf4, 0x9a, 0x59, 0x71, 0x27, 0xa3, 0xe8, 0xa0, 0xea, 0x6b, 0xaa, + 0x5b, 0x53, 0x87, 0x3c, 0xd4, 0xfb, 0x68, 0x99, 0xae, 0x6b, 0x6e, 0x71, 0xf9, 0xc4, 0x8e, 0xa9, + 0xa4, 0xc0, 0xc1, 0x29, 0xd7, 0xdc, 0xe1, 0xfe, 0x38, 0x0b, 0xb5, 0x44, 0x8b, 0xd0, 0x2f, 0x50, + 0x6c, 0x00, 0x64, 0x46, 0x92, 0xf3, 0x0d, 0x02, 0x24, 0x05, 0x75, 0x6d, 0x9c, 0xb2, 0x89, 0x71, + 0x8a, 0x5c, 0x71, 0x72, 0xba, 0x2b, 0xce, 0x23, 0x28, 0xc7, 0x11, 0xfb, 0xc9, 0x26, 0x89, 0xfa, + 0x54, 0x34, 0x48, 0x8c, 0x14, 0x3b, 0xef, 0x14, 0x74, 0xe7, 0x9d, 0xef, 0x69, 0xbe, 0x1e, 0x73, + 0x58, 0x8c, 0x91, 0x36, 0xa2, 0xbf, 0x10, 0x4f, 0x0f, 0xe3, 0x63, 0xa8, 0x68, 0x8d, 0xd7, 0x7d, + 0x3a, 0x32, 0x09, 0x9f, 0x8e, 0x28, 0x6e, 0x2b, 0x1b, 0xc7, 0x6d, 0x19, 0xbf, 0x95, 0x85, 0x9a, + 0x58, 0x5f, 0x8e, 0x7b, 0x7a, 0xe8, 0x0d, 0x9d, 0x3e, 0x9a, 0x95, 0xa2, 0x15, 0x26, 0x05, 0x2d, + 0xb5, 0xce, 0xe4, 0x12, 0x23, 0x39, 0x4b, 0x0f, 0x4f, 0x25, 0x26, 0x1d, 0x85, 0xa7, 0x1a, 0x50, + 0x13, 0x8c, 0x11, 0x0d, 0x44, 0xf1, 0x7d, 0x02, 0x66, 0xe5, 0x84, 0xf3, 0x0d, 0x3b, 0x20, 0x0e, + 0xf9, 0x0d, 0x58, 0x14, 0x38, 0x18, 0x99, 0x37, 0x72, 0x86, 0x43, 0x87, 0x30, 0xe9, 0xa0, 0xa9, + 0x71, 0xc2, 0xb9, 0x69, 0x87, 0x7c, 0x4f, 0x24, 0xc8, 0xeb, 0x07, 0x4a, 0x03, 0x27, 0xb0, 0x8f, + 0x63, 0xef, 0xcd, 0xe8, 0x1b, 0xed, 0xc8, 0xf6, 0xa5, 0x66, 0x47, 0xa6, 0x03, 0x88, 0xca, 0xc8, + 0xbe, 0x8c, 0xec, 0xc8, 0x53, 0x94, 0x54, 0x9c, 0xa6, 0x24, 0xe3, 0xdf, 0x66, 0xa1, 0xa2, 0x91, + 0xe5, 0xeb, 0xec, 0xae, 0x77, 0x66, 0xcc, 0x80, 0x65, 0xdd, 0xe2, 0xf7, 0x56, 0xb2, 0x4a, 0xf4, + 0x74, 0xa1, 0x8b, 0x0e, 0x34, 0x02, 0xbe, 0x05, 0x65, 0xb1, 0xea, 0x3e, 0xc0, 0x03, 0x57, 0x79, + 0x4d, 0x07, 0x02, 0x0e, 0x27, 0xc7, 0x2a, 0xf1, 0x31, 0x26, 0x16, 0xe2, 0xc4, 0xc7, 0x22, 0xf1, + 0x65, 0x2e, 0xdb, 0xdf, 0x86, 0xaa, 0x2c, 0x15, 0xe7, 0x14, 0xbb, 0x1b, 0xaf, 0xfa, 0xc4, 0x7c, + 0x9b, 0x15, 0xaa, 0x8e, 0x26, 0x5f, 0x66, 0x7c, 0xac, 0x32, 0x96, 0x5e, 0x95, 0xf1, 0x31, 0x7d, + 0x18, 0xdb, 0x91, 0x17, 0x3c, 0x7a, 0x59, 0x29, 0x3e, 0xf6, 0x10, 0x16, 0x15, 0xbb, 0x9a, 0xb8, + 0xb6, 0xeb, 0x7a, 0x13, 0xb7, 0xcf, 0x55, 0x40, 0x17, 0x93, 0x49, 0x47, 0x71, 0x8a, 0x31, 0x88, + 0x22, 0x7e, 0xc9, 0x5b, 0xeb, 0x01, 0x14, 0x48, 0x2e, 0x27, 0xe1, 0x23, 0x9d, 0x71, 0x11, 0x0a, + 0xbb, 0x0f, 0x05, 0x12, 0xcf, 0xb3, 0xd7, 0x32, 0x1b, 0x42, 0x30, 0x5a, 0xc0, 0x44, 0xc6, 0x3d, + 0x1e, 0xfa, 0x4e, 0x3f, 0x88, 0x63, 0xc5, 0x0a, 0x42, 0xff, 0xa4, 0xba, 0xe2, 0x93, 0xdb, 0x18, + 0x13, 0x75, 0x54, 0xc2, 0x11, 0x1b, 0xd3, 0x62, 0xa2, 0x0c, 0x29, 0x2e, 0x0d, 0x61, 0xe5, 0x98, + 0x87, 0x17, 0x9c, 0xbb, 0xae, 0x10, 0x86, 0xfa, 0xdc, 0x0d, 0x7d, 0x7b, 0x28, 0x26, 0x89, 0x7a, + 0xf0, 0x64, 0xa6, 0xd4, 0xf8, 0x0c, 0x64, 0x23, 0xce, 0xb8, 0x19, 0xe5, 0x23, 0xde, 0xb1, 0x7c, + 0x9c, 0x96, 0xb6, 0xf6, 0x6b, 0xb0, 0x76, 0x7d, 0xa6, 0x94, 0x88, 0xd0, 0xfb, 0x49, 0xae, 0x12, + 0x59, 0xfd, 0x86, 0x9e, 0x1d, 0x52, 0x6b, 0x74, 0xce, 0xb2, 0x0f, 0x15, 0x2d, 0x25, 0xde, 0xfb, + 0x33, 0x28, 0xdc, 0xd1, 0x87, 0xd8, 0x91, 0x5c, 0xcf, 0x1f, 0xa1, 0x95, 0x6d, 0x60, 0xc5, 0xa5, + 0x67, 0xcc, 0xf9, 0x18, 0x8e, 0x21, 0xf0, 0xc6, 0x3a, 0xcc, 0xa3, 0x64, 0xaf, 0x6d, 0x74, 0x2f, + 0x13, 0x06, 0x8d, 0x25, 0x60, 0xfb, 0xc4, 0xbb, 0x74, 0xe7, 0xcd, 0xff, 0x9c, 0x83, 0x8a, 0x06, + 0x16, 0xbb, 0x11, 0xba, 0xfb, 0x59, 0x03, 0xc7, 0x1e, 0x71, 0x65, 0xd2, 0xac, 0x99, 0x35, 0x84, + 0x6e, 0x49, 0xa0, 0xd8, 0x8b, 0xed, 0xf3, 0x53, 0xcb, 0x9b, 0x84, 0xd6, 0x80, 0x9f, 0xfa, 0x5c, + 0xb5, 0xb2, 0x6a, 0x9f, 0x9f, 0x1e, 0x4c, 0xc2, 0x2d, 0x84, 0x09, 0x2c, 0xc1, 0x4b, 0x34, 0x2c, + 0xe9, 0xa1, 0x36, 0xb2, 0x2f, 0x63, 0x2c, 0xe9, 0x26, 0x49, 0x94, 0x99, 0x8f, 0xdc, 0x24, 0x49, + 0x5b, 0x9c, 0xde, 0x40, 0x0b, 0xb3, 0x1b, 0xe8, 0xb7, 0x60, 0x85, 0x36, 0x50, 0xc9, 0x9a, 0xad, + 0xa9, 0x95, 0xbc, 0x84, 0xa9, 0xb2, 0x93, 0x9a, 0xd8, 0xdb, 0x10, 0x3d, 0x50, 0x6c, 0x29, 0x70, + 0x7e, 0x4c, 0x8c, 0x2c, 0x63, 0x8a, 0x9e, 0xc9, 0xc2, 0xbb, 0xce, 0x8f, 0xb9, 0xc0, 0x44, 0x5f, + 0x18, 0x1d, 0x53, 0x06, 0x64, 0x8c, 0x1c, 0x77, 0x1a, 0xd3, 0xbe, 0x4c, 0x62, 0x96, 0x25, 0xa6, + 0x7d, 0xa9, 0x63, 0x3e, 0x81, 0xd5, 0x11, 0x1f, 0x38, 0x76, 0xb2, 0x58, 0x2b, 0x16, 0xdc, 0x96, + 0x28, 0x59, 0xcb, 0xd3, 0x25, 0xc5, 0x5d, 0x8c, 0xc6, 0x8f, 0xbd, 0xd1, 0xb1, 0x43, 0x32, 0x0b, + 0x79, 0xe7, 0xe4, 0xcd, 0xba, 0x3b, 0x19, 0xfd, 0x10, 0xc1, 0x22, 0x4b, 0x60, 0xd4, 0xa0, 0xd2, + 0x0d, 0xbd, 0xb1, 0x9a, 0xe6, 0x3a, 0x54, 0xe9, 0x53, 0x46, 0x49, 0xde, 0x82, 0x9b, 0xc8, 0x12, + 0x7a, 0xde, 0xd8, 0x1b, 0x7a, 0xa7, 0x57, 0x89, 0x73, 0xbc, 0x7f, 0x9f, 0x81, 0xc5, 0x44, 0xaa, + 0x64, 0xaf, 0xdf, 0x22, 0x7e, 0x16, 0x85, 0xba, 0xd1, 0x1a, 0x5c, 0xd0, 0xd6, 0x20, 0x21, 0x12, + 0x33, 0x53, 0xe1, 0x6f, 0xad, 0xf8, 0x8a, 0x06, 0x95, 0x91, 0x58, 0x4a, 0x73, 0x96, 0xa5, 0xc8, + 0xfc, 0xea, 0xf2, 0x06, 0x55, 0xc4, 0x2f, 0xc9, 0xa0, 0x99, 0x81, 0xec, 0x72, 0x2e, 0x19, 0x16, + 0xa0, 0x9f, 0xf9, 0xa9, 0x16, 0xc4, 0x07, 0x81, 0x81, 0xf1, 0xcf, 0x32, 0x00, 0x71, 0xeb, 0x30, + 0x30, 0x21, 0x92, 0x5b, 0xe8, 0xf6, 0x33, 0x4d, 0x46, 0x79, 0x13, 0xaa, 0x91, 0x7f, 0x72, 0x2c, + 0x09, 0x55, 0x14, 0x4c, 0x88, 0x43, 0xef, 0xc2, 0xfc, 0xe9, 0xd0, 0x3b, 0x46, 0x89, 0x55, 0xca, + 0x2d, 0xe4, 0x9d, 0x56, 0x27, 0xb0, 0x92, 0x46, 0x62, 0xb9, 0x29, 0x9f, 0xea, 0xc2, 0xac, 0x4b, + 0x41, 0xc6, 0xef, 0x64, 0x23, 0x47, 0xcd, 0x78, 0x24, 0x5e, 0xae, 0xde, 0xfd, 0x2c, 0x9e, 0x33, + 0x2f, 0x33, 0x26, 0x7e, 0x0c, 0x75, 0x9f, 0x36, 0x25, 0xb5, 0x63, 0xe5, 0x5f, 0xb2, 0x63, 0xd5, + 0xfc, 0x84, 0xa4, 0xf3, 0x1e, 0x34, 0xec, 0xc1, 0x39, 0xf7, 0x43, 0x07, 0x4f, 0xeb, 0x51, 0x3e, + 0x96, 0xae, 0x91, 0x1a, 0x1c, 0x05, 0xd1, 0x77, 0x61, 0x5e, 0x46, 0xee, 0x46, 0x98, 0xf2, 0x2e, + 0xa0, 0x18, 0x2c, 0x10, 0x8d, 0x7f, 0xa1, 0x3c, 0x43, 0x93, 0xb3, 0xfb, 0xf2, 0x51, 0xd1, 0x7b, + 0x98, 0x9d, 0x35, 0x97, 0x4a, 0x42, 0x92, 0x46, 0x00, 0xc9, 0x8f, 0x08, 0x28, 0x4d, 0x00, 0xc9, + 0x61, 0xcd, 0xbf, 0xce, 0xb0, 0x1a, 0xff, 0x31, 0x03, 0xc5, 0x1d, 0x6f, 0xbc, 0xe3, 0x90, 0x6b, + 0x3e, 0x2e, 0x93, 0xc8, 0x46, 0x35, 0x27, 0x3e, 0xd1, 0xcd, 0xe7, 0x25, 0x01, 0x6a, 0xa9, 0x62, + 0x5e, 0x2d, 0x29, 0xe6, 0x7d, 0x0f, 0x6e, 0xa1, 0x09, 0xd0, 0xf7, 0xc6, 0x9e, 0x2f, 0x96, 0xaa, + 0x3d, 0x24, 0x71, 0xcf, 0x73, 0xc3, 0x33, 0xc5, 0x3b, 0x6f, 0x9e, 0x70, 0x7e, 0xa8, 0x61, 0xec, + 0x45, 0x08, 0x18, 0x02, 0x3a, 0x0c, 0xcf, 0x2d, 0xd2, 0xd0, 0xa5, 0x3c, 0x4a, 0x1c, 0x75, 0x5e, + 0x24, 0xb4, 0x11, 0x8e, 0x12, 0xa9, 0xf1, 0x1d, 0x28, 0x47, 0x87, 0x3d, 0xec, 0x7d, 0x28, 0x9f, + 0x79, 0x63, 0x79, 0x22, 0x94, 0x49, 0x04, 0xf1, 0xc9, 0x5e, 0x9b, 0xa5, 0x33, 0xfa, 0x11, 0x18, + 0x7f, 0x5e, 0x84, 0x62, 0xc7, 0x3d, 0xf7, 0x9c, 0x3e, 0xfa, 0x96, 0x8e, 0xf8, 0xc8, 0x53, 0xd7, + 0x07, 0x88, 0xdf, 0xe8, 0x89, 0x15, 0xdf, 0xe8, 0x93, 0x93, 0x9e, 0x58, 0xd1, 0x5d, 0x3e, 0xcb, + 0x30, 0xe7, 0xeb, 0x57, 0xf2, 0x14, 0x7c, 0xf4, 0x76, 0x8f, 0xf6, 0xcb, 0x82, 0x76, 0xfd, 0x82, + 0x28, 0x8b, 0xae, 0x8a, 0xc1, 0x21, 0xa3, 0x70, 0xce, 0x32, 0x42, 0x70, 0xc0, 0x6e, 0x43, 0x51, + 0xc6, 0xcc, 0x51, 0x04, 0x12, 0xb9, 0xa7, 0x4b, 0x10, 0x52, 0x83, 0xcf, 0xc9, 0x84, 0x1b, 0x09, + 0xb2, 0x39, 0xb3, 0xaa, 0x80, 0x5b, 0x82, 0xd6, 0xee, 0x42, 0x85, 0xf0, 0x09, 0xa5, 0x24, 0x5d, + 0x32, 0x11, 0x84, 0x08, 0x29, 0x37, 0x5b, 0x95, 0x53, 0x6f, 0xb6, 0x42, 0xe7, 0xe1, 0x88, 0xcb, + 0x52, 0x17, 0x81, 0xee, 0x33, 0xd2, 0xe0, 0xea, 0x5a, 0x37, 0x79, 0xa6, 0x42, 0xd1, 0xcd, 0xea, + 0x4c, 0xe5, 0x2d, 0xa8, 0x9d, 0xd8, 0xc3, 0xe1, 0xb1, 0xdd, 0x7f, 0x41, 0x47, 0x01, 0x55, 0x3a, + 0xfd, 0x54, 0x40, 0x3c, 0x0b, 0xb8, 0x0b, 0x15, 0x6d, 0x96, 0xd1, 0xdf, 0x32, 0x6f, 0x42, 0x3c, + 0xbf, 0xd3, 0x27, 0x7c, 0xf5, 0xd7, 0x38, 0xe1, 0xd3, 0xfc, 0x4e, 0xe7, 0x93, 0x7e, 0xa7, 0xb7, + 0x90, 0x9b, 0x4a, 0x07, 0xc3, 0x06, 0x5d, 0x9e, 0x63, 0x0f, 0x06, 0xe8, 0x60, 0x48, 0x37, 0x55, + 0xe2, 0xe0, 0x51, 0xfa, 0x02, 0xe9, 0x12, 0x04, 0x23, 0x94, 0x3b, 0x74, 0x4c, 0x3d, 0xb6, 0x9d, + 0x01, 0x86, 0x18, 0xd0, 0xe9, 0x41, 0xd1, 0x1e, 0x85, 0x87, 0xb6, 0x33, 0x60, 0xf7, 0xa0, 0xaa, + 0x92, 0x71, 0x77, 0x5c, 0xa4, 0xf1, 0x97, 0xc9, 0x62, 0x4f, 0x34, 0xa0, 0x16, 0x61, 0x8c, 0xe2, + 0x10, 0xe5, 0x8a, 0x44, 0x41, 0x3a, 0xf8, 0x00, 0x7d, 0x7a, 0x42, 0x8e, 0x81, 0xc8, 0xf5, 0xc7, + 0xb7, 0x64, 0x5f, 0x25, 0x95, 0xaa, 0xff, 0x64, 0x1c, 0x23, 0x4c, 0x21, 0xdc, 0x91, 0x8d, 0x6e, + 0x25, 0x21, 0xff, 0x4a, 0x54, 0xb4, 0xd1, 0x11, 0x02, 0xfb, 0x8e, 0xa6, 0xbf, 0x36, 0x11, 0xf9, + 0xf6, 0x54, 0xf9, 0xd7, 0x45, 0x58, 0xdd, 0x01, 0x70, 0x02, 0xb1, 0xcb, 0x04, 0xdc, 0x1d, 0x60, + 0x4c, 0x71, 0xc9, 0x2c, 0x3b, 0xc1, 0x33, 0x02, 0x7c, 0xb5, 0x8a, 0x6d, 0x0b, 0xaa, 0x7a, 0x37, + 0x59, 0x09, 0xf2, 0x07, 0x87, 0xed, 0xfd, 0xc6, 0x0d, 0x56, 0x81, 0x62, 0xb7, 0xdd, 0xeb, 0xed, + 0xa2, 0xa5, 0xaf, 0x0a, 0xa5, 0x28, 0xa0, 0x31, 0x2b, 0xbe, 0x5a, 0x9b, 0x9b, 0xed, 0xc3, 0x5e, + 0x7b, 0xab, 0x91, 0xfb, 0x41, 0xbe, 0x94, 0x6d, 0xe4, 0x8c, 0xbf, 0xc8, 0x41, 0x45, 0x1b, 0x85, + 0x97, 0x33, 0xe3, 0x3b, 0x00, 0xa8, 0x49, 0xc6, 0xfe, 0xa7, 0x79, 0xb3, 0x2c, 0x20, 0x34, 0xf9, + 0xba, 0x8d, 0x22, 0x47, 0xb7, 0x32, 0x29, 0x1b, 0xc5, 0x5b, 0x50, 0xa3, 0x0b, 0x8e, 0x74, 0x7b, + 0x6d, 0xc1, 0xac, 0x12, 0x50, 0xb2, 0x6a, 0x8c, 0x88, 0x46, 0x24, 0x8c, 0x95, 0x93, 0xd7, 0x9d, + 0x10, 0x08, 0xa3, 0xe5, 0x30, 0xd4, 0x31, 0xf0, 0x86, 0xe7, 0x9c, 0x30, 0x48, 0x22, 0xac, 0x48, + 0x58, 0x4f, 0xc6, 0x76, 0x4b, 0x7e, 0xa8, 0x85, 0xe4, 0x16, 0xcc, 0x2a, 0x01, 0x65, 0x45, 0xdf, + 0x50, 0x04, 0x54, 0x42, 0x02, 0x5a, 0x9d, 0xa5, 0x86, 0x04, 0xf1, 0xec, 0xce, 0x1c, 0x23, 0x96, + 0x91, 0x30, 0xbe, 0x36, 0x9b, 0xef, 0xd5, 0xc7, 0x89, 0xec, 0x7d, 0x60, 0xa3, 0xf1, 0xd8, 0x4a, + 0x39, 0xe0, 0xcb, 0x9b, 0xf3, 0xa3, 0xf1, 0xb8, 0xa7, 0x9d, 0x7f, 0x7d, 0x05, 0x67, 0x8f, 0x9f, + 0x03, 0x6b, 0x89, 0x05, 0x8c, 0x4d, 0x8c, 0x54, 0xb1, 0x98, 0x2d, 0x67, 0x74, 0xb6, 0x9c, 0xc2, + 0xfd, 0xb2, 0xa9, 0xdc, 0xef, 0x65, 0x7c, 0xc2, 0xd8, 0x86, 0xca, 0xa1, 0x76, 0x7d, 0xda, 0x3d, + 0xb1, 0x43, 0xa8, 0x8b, 0xd3, 0x68, 0xef, 0xa0, 0x33, 0x45, 0x5f, 0xde, 0x97, 0xa6, 0xb5, 0x26, + 0xab, 0xb5, 0xc6, 0xf8, 0xa7, 0x19, 0xba, 0x9a, 0x26, 0x6a, 0x7c, 0x7c, 0x63, 0x9b, 0x32, 0xbf, + 0xc5, 0x91, 0xf3, 0x15, 0x65, 0x76, 0x93, 0x41, 0xef, 0xd8, 0x34, 0xcb, 0x3b, 0x39, 0x09, 0xb8, + 0xf2, 0xf1, 0xa8, 0x20, 0xec, 0x00, 0x41, 0x4a, 0xf8, 0x16, 0x12, 0xbe, 0x43, 0xe5, 0x07, 0xd2, + 0xb1, 0x43, 0x08, 0xdf, 0x7b, 0xf6, 0xa5, 0xac, 0x35, 0x10, 0x22, 0x88, 0xb4, 0x0f, 0xa8, 0xc8, + 0xd7, 0xe8, 0xdb, 0xf8, 0x47, 0x32, 0xb8, 0x7f, 0x7a, 0x7c, 0x1f, 0x40, 0x29, 0x2a, 0x35, 0xb9, + 0xc3, 0x2a, 0xcc, 0x28, 0x5d, 0xec, 0xe3, 0x78, 0x18, 0x92, 0x68, 0x31, 0x2d, 0x2e, 0xb4, 0xf1, + 0x74, 0xb4, 0x56, 0x7f, 0x1d, 0xd8, 0x89, 0xe3, 0x4f, 0x23, 0xd3, 0x62, 0x6b, 0x60, 0x8a, 0x86, + 0x6d, 0x1c, 0xc1, 0xa2, 0xe2, 0x12, 0x9a, 0x46, 0x90, 0x9c, 0xbc, 0xcc, 0x2b, 0x98, 0x7c, 0x76, + 0x86, 0xc9, 0x1b, 0x3f, 0xcd, 0x43, 0x51, 0x5d, 0x45, 0x98, 0x76, 0x7d, 0x5e, 0x39, 0x79, 0x7d, + 0x5e, 0x33, 0x71, 0xd5, 0x12, 0x4e, 0xbd, 0xdc, 0xef, 0xdf, 0x9d, 0xde, 0xb2, 0x35, 0x5b, 0x45, + 0x62, 0xdb, 0x5e, 0x81, 0xfc, 0xd8, 0x0e, 0xcf, 0xf0, 0x5c, 0x92, 0x88, 0x07, 0xbf, 0x95, 0x0d, + 0xa3, 0x90, 0xb4, 0x61, 0xa4, 0x5d, 0x35, 0x48, 0x22, 0xe9, 0xcc, 0x55, 0x83, 0xb7, 0x80, 0xe4, + 0x0b, 0xcd, 0xc5, 0xad, 0x84, 0x00, 0xb1, 0x17, 0x25, 0xc5, 0x91, 0xd2, 0xb4, 0x38, 0xf2, 0xda, + 0xa2, 0xc2, 0xb7, 0x60, 0x8e, 0xae, 0xe9, 0x90, 0x11, 0xbe, 0x6a, 0x43, 0x91, 0x63, 0xa8, 0xfe, + 0x53, 0xdc, 0x83, 0x29, 0x71, 0xf5, 0x7b, 0xbb, 0x2a, 0x89, 0x7b, 0xbb, 0x74, 0xdb, 0x4a, 0x35, + 0x69, 0x5b, 0xb9, 0x0f, 0x8d, 0x68, 0x40, 0xf1, 0xa4, 0xd2, 0x0d, 0x64, 0xfc, 0x60, 0x5d, 0xc1, + 0x05, 0x97, 0xdc, 0x0f, 0xe2, 0x0d, 0xb1, 0x9e, 0xd8, 0x10, 0x05, 0x0f, 0x6b, 0x85, 0x21, 0x1f, + 0x8d, 0x43, 0xb9, 0x21, 0x62, 0x84, 0x91, 0xde, 0xc0, 0x64, 0xec, 0x7b, 0x0d, 0xca, 0x9d, 0x7d, + 0x6b, 0x7b, 0xb7, 0xf3, 0x74, 0xa7, 0xd7, 0xc8, 0x88, 0xcf, 0xee, 0xd1, 0xe6, 0x66, 0xbb, 0xbd, + 0x85, 0x3b, 0x0e, 0xc0, 0xdc, 0x76, 0xab, 0x23, 0x76, 0x9f, 0x9c, 0xf1, 0x7b, 0x59, 0xa8, 0x68, + 0xc5, 0xb3, 0x27, 0xd1, 0xa8, 0xd0, 0xd5, 0x4e, 0x77, 0x66, 0x9b, 0xb0, 0xae, 0x58, 0xb1, 0x36, + 0x2c, 0xd1, 0xc5, 0x8a, 0xd9, 0x6b, 0x2f, 0x56, 0x64, 0xef, 0xc0, 0xbc, 0x4d, 0x25, 0x44, 0xa3, + 0x20, 0x4f, 0xe1, 0x25, 0x58, 0x0e, 0x02, 0x3a, 0x76, 0xc6, 0xfb, 0x89, 0xc0, 0xcb, 0x2b, 0x5f, + 0xca, 0x68, 0x4b, 0xc1, 0xc1, 0x2a, 0x9e, 0xd8, 0xce, 0x70, 0xe2, 0x73, 0x69, 0x35, 0x8f, 0x76, + 0x66, 0x82, 0x9a, 0x2a, 0xd9, 0xf8, 0x10, 0x20, 0x6e, 0x73, 0x72, 0x70, 0x6e, 0x24, 0x07, 0x27, + 0xa3, 0x0d, 0x4e, 0xd6, 0xd8, 0x22, 0x36, 0x22, 0x07, 0x3a, 0x3a, 0x76, 0xfb, 0x06, 0xa8, 0x83, + 0x40, 0x0b, 0xdd, 0xab, 0xc7, 0x43, 0x1e, 0xaa, 0x5b, 0x02, 0x16, 0x64, 0x4a, 0x27, 0x4a, 0x50, + 0x97, 0x76, 0xc4, 0xa5, 0xc4, 0xdc, 0x48, 0x92, 0xe4, 0x34, 0x37, 0x92, 0xa8, 0x66, 0x94, 0x6e, + 0xac, 0x41, 0x73, 0x8b, 0x8b, 0xd2, 0x5a, 0xc3, 0xe1, 0x54, 0x73, 0x8c, 0x5b, 0x70, 0x33, 0x25, + 0x4d, 0x1e, 0x42, 0x7c, 0x02, 0xcb, 0x2d, 0xba, 0x10, 0xe0, 0xab, 0x8a, 0xfc, 0x33, 0x9a, 0xb0, + 0x32, 0x5d, 0xa4, 0xac, 0x6c, 0x1b, 0x16, 0xb6, 0xf8, 0xf1, 0xe4, 0x74, 0x97, 0x9f, 0xc7, 0x15, + 0x31, 0xc8, 0x07, 0x67, 0xde, 0x85, 0x1c, 0x1f, 0xfc, 0x8d, 0x5e, 0x86, 0x02, 0xc7, 0x0a, 0xc6, + 0xbc, 0xaf, 0x0e, 0xa2, 0x11, 0xd2, 0x1d, 0xf3, 0xbe, 0xf1, 0x04, 0x98, 0x5e, 0x8e, 0x1c, 0x2f, + 0xa1, 0x25, 0x4c, 0x8e, 0xad, 0xe0, 0x2a, 0x08, 0xf9, 0x48, 0x45, 0xbc, 0x41, 0x30, 0x39, 0xee, + 0x12, 0xc4, 0x78, 0x17, 0xaa, 0x87, 0xf6, 0x95, 0xc9, 0x3f, 0x97, 0x81, 0x65, 0xab, 0x50, 0x1c, + 0xdb, 0x57, 0x82, 0x0d, 0x44, 0x36, 0x29, 0x4c, 0x36, 0xfe, 0x28, 0x0f, 0x73, 0x84, 0xc9, 0xee, + 0xd1, 0xe5, 0xbe, 0x8e, 0x8b, 0xcb, 0x50, 0x31, 0x4a, 0x0d, 0x34, 0xc3, 0x4b, 0xb3, 0xb3, 0xbc, + 0x54, 0x1e, 0xa0, 0xa9, 0x4b, 0x8d, 0x94, 0xf5, 0xc0, 0x9d, 0x8c, 0xd4, 0x4d, 0x46, 0xc9, 0xa8, + 0xf8, 0x7c, 0x7c, 0x79, 0x33, 0x85, 0x0c, 0x27, 0xed, 0xbb, 0xb1, 0x2e, 0x42, 0xad, 0x53, 0x5b, + 0x84, 0x64, 0x97, 0x3a, 0x28, 0x55, 0xe1, 0x29, 0xaa, 0x68, 0xc9, 0xa4, 0xc2, 0x33, 0xa3, 0xd8, + 0x94, 0x5e, 0xad, 0xd8, 0xd0, 0xc9, 0xda, 0x4b, 0x14, 0x1b, 0x78, 0x0d, 0xc5, 0xe6, 0x35, 0x6c, + 0xab, 0x37, 0xa1, 0x84, 0xfb, 0xbe, 0xc6, 0x3d, 0xc5, 0x7e, 0x2f, 0xb8, 0xe7, 0xb7, 0x35, 0xd1, + 0x9f, 0x1c, 0x3b, 0x6e, 0xc5, 0xcb, 0xc4, 0xe4, 0x9f, 0xff, 0x62, 0x6c, 0x56, 0xcf, 0xa1, 0x28, + 0xa1, 0x82, 0xa0, 0x5d, 0x7b, 0xa4, 0xee, 0x85, 0xc3, 0xdf, 0x62, 0xd8, 0xf0, 0x32, 0xab, 0xcf, + 0x27, 0x8e, 0xcf, 0x07, 0xea, 0xc2, 0x1f, 0x07, 0xd7, 0xa8, 0x80, 0x88, 0x0e, 0x0a, 0x35, 0xc4, + 0xf5, 0x2e, 0x5c, 0x79, 0xdd, 0x47, 0xd1, 0x09, 0x9e, 0x89, 0x4f, 0x83, 0x41, 0x03, 0x6f, 0x86, + 0x1c, 0x7b, 0xbe, 0xda, 0x9c, 0x8c, 0x9f, 0x66, 0xa0, 0x21, 0x57, 0x57, 0x94, 0xa6, 0x6b, 0x01, + 0x85, 0xeb, 0xfc, 0x10, 0x5e, 0x7e, 0x7d, 0x8f, 0x01, 0x35, 0x3c, 0xfc, 0x88, 0x76, 0x2a, 0x3a, + 0xbc, 0xa9, 0x08, 0xe0, 0xb6, 0xdc, 0xad, 0xde, 0x80, 0x8a, 0xf2, 0x81, 0x1e, 0x39, 0x43, 0x75, + 0x4f, 0x3b, 0x39, 0x41, 0xef, 0x39, 0x43, 0xb5, 0xd1, 0xf9, 0xb6, 0x8c, 0xde, 0xcd, 0xe0, 0x46, + 0x67, 0xda, 0x21, 0x37, 0xfe, 0x75, 0x06, 0x16, 0xb4, 0xae, 0xc8, 0x75, 0xfb, 0x11, 0x54, 0xa3, + 0x2b, 0x59, 0x79, 0x24, 0x79, 0xad, 0x26, 0x19, 0x4d, 0x9c, 0xad, 0xd2, 0x8f, 0x20, 0x81, 0x68, + 0xcc, 0xc0, 0xbe, 0x22, 0x47, 0xdd, 0xc9, 0x48, 0x29, 0x37, 0x03, 0xfb, 0x6a, 0x9b, 0xf3, 0xee, + 0x64, 0x24, 0x54, 0xd7, 0x0b, 0xce, 0x5f, 0x44, 0x08, 0x24, 0x73, 0x81, 0x80, 0x49, 0x0c, 0x03, + 0x6a, 0x23, 0xcf, 0x0d, 0xcf, 0x22, 0x14, 0x29, 0x75, 0x22, 0x90, 0x70, 0x8c, 0x3f, 0xcb, 0xc2, + 0x22, 0x1d, 0xb1, 0xc9, 0xa3, 0x4d, 0xc9, 0xba, 0x9a, 0x30, 0x47, 0xa7, 0x8d, 0xc4, 0xbc, 0x76, + 0x6e, 0x98, 0xf2, 0x9b, 0x7d, 0xeb, 0x35, 0x8f, 0x05, 0x55, 0x80, 0xf0, 0x35, 0xc3, 0x9f, 0x9b, + 0x1d, 0xfe, 0xeb, 0x87, 0x37, 0xcd, 0xd0, 0x59, 0x48, 0x33, 0x74, 0xbe, 0x8e, 0x79, 0x71, 0x26, + 0x94, 0xb5, 0x28, 0x71, 0xb4, 0x50, 0xd6, 0x27, 0xb0, 0x9a, 0xc0, 0x41, 0x6e, 0xed, 0x9c, 0x38, + 0x5c, 0xdd, 0xa6, 0xb2, 0xa4, 0x61, 0x77, 0x55, 0xda, 0x46, 0x11, 0x0a, 0x41, 0xdf, 0x1b, 0x73, + 0x63, 0x05, 0x96, 0x92, 0xa3, 0x2a, 0xb7, 0x89, 0xdf, 0xcf, 0x40, 0x53, 0xba, 0xa5, 0x38, 0xee, + 0xe9, 0x8e, 0x13, 0x84, 0x9e, 0x1f, 0x5d, 0x5d, 0x7a, 0x07, 0x20, 0x08, 0x6d, 0x5f, 0x6a, 0x9b, + 0xf2, 0xfe, 0x10, 0x84, 0xa0, 0x26, 0x79, 0x13, 0x4a, 0xdc, 0x1d, 0x50, 0x22, 0x51, 0x43, 0x91, + 0xbb, 0x03, 0xa5, 0x87, 0xce, 0xc8, 0xdf, 0xb5, 0xa4, 0x7a, 0x21, 0xc3, 0xf9, 0xc5, 0xe8, 0xf0, + 0x73, 0xdc, 0x78, 0xf3, 0x51, 0x38, 0xff, 0x9e, 0x7d, 0x89, 0x4e, 0x9e, 0x81, 0xf1, 0xf7, 0xb3, + 0x30, 0x1f, 0xb7, 0x8f, 0xee, 0x02, 0x79, 0xf9, 0xad, 0x26, 0xf7, 0x24, 0x39, 0x38, 0x42, 0x7e, + 0xd7, 0x0e, 0x1e, 0x4b, 0xb4, 0x38, 0x3b, 0x2e, 0x33, 0xa0, 0xa2, 0x30, 0xbc, 0x49, 0xa8, 0xdd, + 0x20, 0x58, 0x26, 0x94, 0x83, 0x49, 0x28, 0x14, 0x2e, 0xa1, 0x79, 0x3a, 0xae, 0x54, 0x79, 0x0a, + 0xf6, 0x28, 0xec, 0xe0, 0xc3, 0x04, 0x02, 0x2c, 0xb2, 0xd1, 0x44, 0x0a, 0x2c, 0x81, 0xdf, 0x20, + 0x39, 0x9b, 0x66, 0x0e, 0x65, 0x6c, 0x5d, 0x08, 0xa5, 0x3b, 0x9a, 0x23, 0x21, 0xf4, 0x0d, 0xa8, + 0x50, 0xe1, 0x71, 0xe4, 0x72, 0xde, 0x2c, 0x63, 0x0d, 0x98, 0x2e, 0x0f, 0x81, 0xbc, 0x49, 0x42, + 0xf5, 0x05, 0xaa, 0x0a, 0xbd, 0x3e, 0xfe, 0x56, 0x06, 0x6e, 0xa6, 0x4c, 0x9b, 0x5c, 0xe5, 0x9b, + 0xb0, 0x70, 0x12, 0x25, 0xaa, 0xd1, 0xa5, 0xa5, 0xbe, 0xa2, 0xd8, 0x6a, 0x72, 0x4c, 0xcd, 0xc6, + 0x49, 0x12, 0x10, 0x2b, 0x5d, 0x34, 0x83, 0x89, 0xb8, 0x78, 0x54, 0xba, 0x68, 0x1a, 0x49, 0xdf, + 0x39, 0x84, 0xb5, 0xf6, 0xa5, 0xe0, 0x18, 0x9b, 0xfa, 0xcb, 0x1a, 0x8a, 0x8c, 0x92, 0x07, 0xcc, + 0x99, 0xd7, 0x3a, 0x60, 0x1e, 0x50, 0x20, 0x6d, 0x54, 0xd6, 0xcf, 0x52, 0x08, 0x6e, 0xa0, 0x22, + 0x0f, 0xbd, 0x0c, 0xa2, 0x02, 0xe4, 0xfb, 0xd1, 0x8b, 0x20, 0x46, 0x00, 0xf3, 0x7b, 0x93, 0x61, + 0xe8, 0xc4, 0x8f, 0x84, 0xb0, 0x6f, 0xc9, 0x3c, 0x58, 0x8f, 0x1a, 0xb5, 0xd4, 0x8a, 0x20, 0xaa, + 0x08, 0x07, 0x6b, 0x24, 0x0a, 0xb2, 0x66, 0xeb, 0x9b, 0x1f, 0x25, 0x6b, 0x30, 0x6e, 0xc2, 0x6a, + 0xfc, 0x45, 0xc3, 0xa6, 0xb6, 0x9a, 0x7f, 0x92, 0x21, 0x8f, 0xf2, 0xe4, 0x83, 0x25, 0xac, 0x0d, + 0x8b, 0x81, 0xe3, 0x9e, 0x0e, 0xb9, 0x5e, 0x7c, 0x20, 0x07, 0x61, 0x39, 0xd9, 0x36, 0xf9, 0xa8, + 0x89, 0xb9, 0x40, 0x39, 0xe2, 0xd2, 0x02, 0xb6, 0x71, 0x5d, 0x23, 0x63, 0xb2, 0x98, 0x1a, 0x8d, + 0xd9, 0xc6, 0x77, 0xa0, 0x9e, 0xac, 0x88, 0x7d, 0x5b, 0xc6, 0x9f, 0xc7, 0xad, 0xca, 0x4d, 0x05, + 0xe7, 0xc6, 0x04, 0x51, 0x89, 0xc7, 0x3e, 0x30, 0xfe, 0x4e, 0x06, 0x9a, 0x26, 0x17, 0x94, 0xab, + 0xb5, 0x52, 0xd1, 0xcc, 0x47, 0x33, 0xa5, 0x5e, 0xdf, 0x57, 0x15, 0xd6, 0xae, 0x5a, 0xf4, 0xf5, + 0x6b, 0x27, 0x63, 0xe7, 0xc6, 0x4c, 0x8f, 0x36, 0x4a, 0x30, 0x47, 0x28, 0xc6, 0x2a, 0x2c, 0xcb, + 0xf6, 0xa8, 0xb6, 0xc4, 0xd6, 0xc3, 0x44, 0x8d, 0x09, 0xeb, 0xe1, 0x1a, 0x34, 0x29, 0xd0, 0x54, + 0xef, 0x84, 0xcc, 0xb8, 0x05, 0x6c, 0xcf, 0xee, 0xdb, 0xbe, 0xe7, 0xb9, 0x87, 0xdc, 0x97, 0xfe, + 0xb9, 0x28, 0x61, 0xa2, 0x71, 0x4d, 0x89, 0xc2, 0xf4, 0xa5, 0xee, 0x4d, 0xf5, 0x5c, 0xe5, 0x8e, + 0x44, 0x5f, 0x86, 0x09, 0x8b, 0x1b, 0xf6, 0x0b, 0xae, 0x4a, 0x52, 0x43, 0xf4, 0x31, 0x54, 0xc6, + 0x51, 0xa1, 0x6a, 0xdc, 0xd5, 0xfd, 0x18, 0xb3, 0xd5, 0x9a, 0x3a, 0xb6, 0xf1, 0x18, 0x96, 0x92, + 0x65, 0x4a, 0xd6, 0xb1, 0x06, 0xa5, 0x91, 0x84, 0xc9, 0xd6, 0x45, 0xdf, 0xc6, 0xef, 0x96, 0xa0, + 0x28, 0xf5, 0x39, 0xb6, 0x0e, 0xf9, 0xbe, 0x72, 0x09, 0x8b, 0xaf, 0x5d, 0x92, 0xa9, 0xea, 0xff, + 0x26, 0x3a, 0x86, 0x09, 0x3c, 0xf6, 0x31, 0xd4, 0x93, 0x56, 0xd1, 0xa9, 0x30, 0xf6, 0xa4, 0x39, + 0xb3, 0xd6, 0x9f, 0xb2, 0x7f, 0x95, 0xe3, 0xcd, 0x91, 0x64, 0x86, 0xd2, 0x99, 0xb6, 0x7b, 0x7a, + 0xae, 0x90, 0xb7, 0x83, 0x33, 0xdb, 0x7a, 0xfc, 0xe4, 0x43, 0x19, 0xc7, 0x5e, 0x41, 0x60, 0xf7, + 0xcc, 0x7e, 0xfc, 0xe4, 0xc3, 0x69, 0x49, 0x5a, 0x46, 0xb1, 0x6b, 0x92, 0xf4, 0x12, 0x14, 0xe8, + 0x82, 0x50, 0xf2, 0xed, 0xa1, 0x0f, 0xf6, 0x08, 0x96, 0xa4, 0xda, 0x6a, 0x49, 0x2f, 0x6c, 0xe2, + 0x82, 0x25, 0x0a, 0x7c, 0x93, 0x69, 0x5d, 0x4c, 0xa2, 0xb3, 0xa1, 0x15, 0x98, 0x3b, 0x8b, 0x6f, + 0x7b, 0xad, 0x99, 0xf2, 0xcb, 0xf8, 0xb3, 0x02, 0x54, 0xb4, 0x41, 0x61, 0x55, 0x28, 0x99, 0xed, + 0x6e, 0xdb, 0xfc, 0xb4, 0xbd, 0xd5, 0xb8, 0xc1, 0xee, 0xc3, 0xdb, 0x9d, 0xfd, 0xcd, 0x03, 0xd3, + 0x6c, 0x6f, 0xf6, 0xac, 0x03, 0xd3, 0x52, 0x97, 0x7f, 0x1d, 0xb6, 0x9e, 0xef, 0xb5, 0xf7, 0x7b, + 0xd6, 0x56, 0xbb, 0xd7, 0xea, 0xec, 0x76, 0x1b, 0x19, 0x76, 0x1b, 0x9a, 0x31, 0xa6, 0x4a, 0x6e, + 0xed, 0x1d, 0x1c, 0xed, 0xf7, 0x1a, 0x59, 0x76, 0x17, 0x6e, 0x6d, 0x77, 0xf6, 0x5b, 0xbb, 0x56, + 0x8c, 0xb3, 0xb9, 0xdb, 0xfb, 0xd4, 0x6a, 0xff, 0xca, 0x61, 0xc7, 0x7c, 0xde, 0xc8, 0xa5, 0x21, + 0x08, 0x65, 0x5c, 0x95, 0x90, 0x67, 0x37, 0x61, 0x99, 0x10, 0x28, 0x8b, 0xd5, 0x3b, 0x38, 0xb0, + 0xba, 0x07, 0x07, 0xfb, 0x8d, 0x02, 0x5b, 0x80, 0x5a, 0x67, 0xff, 0xd3, 0xd6, 0x6e, 0x67, 0xcb, + 0x32, 0xdb, 0xad, 0xdd, 0xbd, 0xc6, 0x1c, 0x5b, 0x84, 0xf9, 0x69, 0xbc, 0xa2, 0x28, 0x42, 0xe1, + 0x1d, 0xec, 0x77, 0x0e, 0xf6, 0xad, 0x4f, 0xdb, 0x66, 0xb7, 0x73, 0xb0, 0xdf, 0x28, 0xb1, 0x15, + 0x60, 0xc9, 0xa4, 0x9d, 0xbd, 0xd6, 0x66, 0xa3, 0xcc, 0x96, 0x61, 0x21, 0x09, 0x7f, 0xd6, 0x7e, + 0xde, 0x00, 0xd6, 0x84, 0x25, 0x6a, 0x98, 0xb5, 0xd1, 0xde, 0x3d, 0xf8, 0xcc, 0xda, 0xeb, 0xec, + 0x77, 0xf6, 0x8e, 0xf6, 0x1a, 0x15, 0xbc, 0x8e, 0xb0, 0xdd, 0xb6, 0x3a, 0xfb, 0xdd, 0xa3, 0xed, + 0xed, 0xce, 0x66, 0xa7, 0xbd, 0xdf, 0x6b, 0x54, 0xa9, 0xe6, 0xb4, 0x8e, 0xd7, 0x44, 0x06, 0x19, + 0xaa, 0x61, 0x6d, 0x75, 0xba, 0xad, 0x8d, 0xdd, 0xf6, 0x56, 0xa3, 0xce, 0xee, 0xc0, 0xcd, 0x5e, + 0x7b, 0xef, 0xf0, 0xc0, 0x6c, 0x99, 0xcf, 0x55, 0x28, 0x87, 0xb5, 0xdd, 0xea, 0xec, 0x1e, 0x99, + 0xed, 0xc6, 0x3c, 0x7b, 0x13, 0xee, 0x98, 0xed, 0x4f, 0x8e, 0x3a, 0x66, 0x7b, 0xcb, 0xda, 0x3f, + 0xd8, 0x6a, 0x5b, 0xdb, 0xed, 0x56, 0xef, 0xc8, 0x6c, 0x5b, 0x7b, 0x9d, 0x6e, 0xb7, 0xb3, 0xff, + 0xb4, 0xd1, 0x60, 0x6f, 0xc3, 0xbd, 0x08, 0x25, 0x2a, 0x60, 0x0a, 0x6b, 0x41, 0xf4, 0x4f, 0x4d, + 0xe9, 0x7e, 0xfb, 0x57, 0x7a, 0xd6, 0x61, 0xbb, 0x6d, 0x36, 0x18, 0x5b, 0x83, 0x95, 0xb8, 0x7a, + 0xaa, 0x40, 0xd6, 0xbd, 0x28, 0xd2, 0x0e, 0xdb, 0xe6, 0x5e, 0x6b, 0x5f, 0x4c, 0x70, 0x22, 0x6d, + 0x49, 0x34, 0x3b, 0x4e, 0x9b, 0x6e, 0xf6, 0x32, 0x63, 0x50, 0xd7, 0x66, 0x65, 0xbb, 0x65, 0x36, + 0x56, 0xd8, 0x3c, 0x54, 0xf6, 0x0e, 0x0f, 0xad, 0x5e, 0x67, 0xaf, 0x7d, 0x70, 0xd4, 0x6b, 0xac, + 0xb2, 0x65, 0x68, 0x74, 0xf6, 0x7b, 0x6d, 0x53, 0xcc, 0xb5, 0xca, 0xfa, 0x3f, 0x8a, 0x6c, 0x09, + 0xe6, 0x55, 0x4b, 0x15, 0xf4, 0x2f, 0x8b, 0x6c, 0x15, 0xd8, 0xd1, 0xbe, 0xd9, 0x6e, 0x6d, 0x89, + 0x81, 0x8b, 0x12, 0xfe, 0x67, 0x51, 0x5a, 0x48, 0x7e, 0x9a, 0x8b, 0x36, 0xeb, 0xd8, 0xe5, 0x20, + 0x79, 0xf7, 0x77, 0x55, 0xbb, 0xb3, 0xfb, 0x55, 0xaf, 0x72, 0x68, 0xaa, 0x55, 0x6e, 0x46, 0xb5, + 0x9a, 0xd1, 0xdd, 0x6b, 0xba, 0xec, 0xf7, 0x16, 0xd4, 0x46, 0x74, 0x0f, 0xb8, 0xbc, 0xef, 0x17, + 0xa4, 0xff, 0x0d, 0x01, 0xe9, 0xb2, 0xdf, 0x99, 0x67, 0x29, 0x0a, 0xb3, 0xcf, 0x52, 0xa4, 0xc9, + 0xf7, 0x73, 0x69, 0xf2, 0xfd, 0x03, 0x58, 0x20, 0xd6, 0xe4, 0xb8, 0xce, 0x48, 0x69, 0xcd, 0x24, + 0x05, 0xce, 0x23, 0x8b, 0x22, 0xb8, 0x52, 0x27, 0x94, 0xca, 0x21, 0x59, 0x48, 0x51, 0x6a, 0x1b, + 0x09, 0x4d, 0x83, 0x38, 0x47, 0xa4, 0x69, 0x44, 0x35, 0xd8, 0x97, 0x71, 0x0d, 0x15, 0xad, 0x06, + 0x82, 0x63, 0x0d, 0x0f, 0x60, 0x81, 0x5f, 0x86, 0xbe, 0x6d, 0x79, 0x63, 0xfb, 0xf3, 0x09, 0x9a, + 0x70, 0x6d, 0xd4, 0xe1, 0xab, 0xe6, 0x3c, 0x26, 0x1c, 0x20, 0x7c, 0xcb, 0x0e, 0xed, 0x07, 0x5f, + 0x40, 0x45, 0xbb, 0x23, 0x9e, 0xad, 0xc2, 0xe2, 0x67, 0x9d, 0xde, 0x7e, 0xbb, 0xdb, 0xb5, 0x0e, + 0x8f, 0x36, 0x9e, 0xb5, 0x9f, 0x5b, 0x3b, 0xad, 0xee, 0x4e, 0xe3, 0x86, 0x58, 0xb4, 0xfb, 0xed, + 0x6e, 0xaf, 0xbd, 0x95, 0x80, 0x67, 0xd8, 0x1b, 0xb0, 0x76, 0xb4, 0x7f, 0xd4, 0x6d, 0x6f, 0x59, + 0x69, 0xf9, 0xb2, 0x82, 0x4a, 0x65, 0x7a, 0x4a, 0xf6, 0xdc, 0x83, 0xdf, 0x80, 0x7a, 0x32, 0xaa, + 0x99, 0x01, 0xcc, 0xed, 0xb6, 0x9f, 0xb6, 0x36, 0x9f, 0xd3, 0x85, 0xa5, 0xdd, 0x5e, 0xab, 0xd7, + 0xd9, 0xb4, 0xe4, 0x05, 0xa5, 0x82, 0x23, 0x64, 0x58, 0x05, 0x8a, 0xad, 0xfd, 0xcd, 0x9d, 0x03, + 0xb3, 0xdb, 0xc8, 0xb2, 0xdb, 0xb0, 0xaa, 0x68, 0x75, 0xf3, 0x60, 0x6f, 0xaf, 0xd3, 0x43, 0x66, + 0xd8, 0x7b, 0x7e, 0x28, 0x48, 0xf3, 0xc1, 0x77, 0xa1, 0x9e, 0xf4, 0xbd, 0x4b, 0x9e, 0xca, 0xae, + 0xc1, 0xca, 0x46, 0xbb, 0xf7, 0x59, 0xbb, 0xbd, 0x8f, 0x4d, 0xdf, 0x6c, 0xef, 0xf7, 0xcc, 0xd6, + 0x6e, 0xa7, 0xf7, 0xbc, 0x91, 0x79, 0xf0, 0x31, 0x34, 0xa6, 0x0d, 0x5d, 0x09, 0xcb, 0xe0, 0xcb, + 0x4c, 0x88, 0x0f, 0xfe, 0x79, 0x0e, 0x20, 0x0e, 0x00, 0x11, 0x3c, 0x6c, 0xab, 0xd5, 0x6b, 0xed, + 0x1e, 0x88, 0xf1, 0x31, 0x0f, 0x7a, 0x82, 0x35, 0x99, 0xed, 0x4f, 0x1a, 0x37, 0x52, 0x53, 0x0e, + 0x0e, 0x7b, 0x8d, 0x8c, 0x98, 0x8a, 0xce, 0x7e, 0xa7, 0xd7, 0x69, 0xed, 0x5a, 0xe6, 0xc1, 0x51, + 0x67, 0xff, 0x29, 0x5d, 0xf1, 0x88, 0xec, 0xfb, 0xe8, 0x70, 0xdb, 0x3c, 0xd8, 0xef, 0x59, 0xdd, + 0x9d, 0xa3, 0xde, 0x16, 0x5e, 0x10, 0xb9, 0x69, 0x76, 0x0e, 0xa9, 0xcc, 0xfc, 0xcb, 0x10, 0x44, + 0xd1, 0x05, 0x31, 0x99, 0x4f, 0x0f, 0xba, 0xdd, 0xce, 0xa1, 0xf5, 0xc9, 0x51, 0xdb, 0xec, 0xb4, + 0xbb, 0x98, 0x71, 0x2e, 0x05, 0x2e, 0xf0, 0x8b, 0x82, 0xe9, 0xf7, 0x76, 0x3f, 0x95, 0x5c, 0x59, + 0xa0, 0x96, 0x92, 0x20, 0x81, 0x55, 0x16, 0x83, 0x29, 0xd8, 0x5a, 0x4a, 0xc9, 0x70, 0x4d, 0x9a, + 0xc8, 0x57, 0x11, 0x0c, 0x7b, 0x66, 0x96, 0x31, 0x5b, 0x35, 0x3d, 0x49, 0xe4, 0x42, 0x5e, 0x1e, + 0xed, 0x7c, 0x5b, 0x5b, 0x26, 0x66, 0xa8, 0xcf, 0x40, 0x05, 0xee, 0xbc, 0x98, 0x28, 0xc1, 0xf7, + 0x04, 0x4a, 0x43, 0x7d, 0x88, 0x94, 0x85, 0xc7, 0xbf, 0x93, 0x83, 0x3a, 0x05, 0xe3, 0xd1, 0xdb, + 0x7f, 0xdc, 0x67, 0x7b, 0x50, 0x94, 0x8f, 0x48, 0xb2, 0xe5, 0xe8, 0xf6, 0x3d, 0xfd, 0xd9, 0xca, + 0xb5, 0x95, 0x69, 0xb0, 0x94, 0xf3, 0x16, 0xff, 0xda, 0x9f, 0xfe, 0xf7, 0xbf, 0x97, 0xad, 0xb1, + 0xca, 0xc3, 0xf3, 0x0f, 0x1e, 0x9e, 0x72, 0x37, 0x10, 0x65, 0xfc, 0x1a, 0x40, 0xfc, 0x34, 0x22, + 0x6b, 0x46, 0xd6, 0xad, 0xa9, 0x77, 0x23, 0xd7, 0x6e, 0xa6, 0xa4, 0xc8, 0x72, 0x6f, 0x62, 0xb9, + 0x8b, 0x46, 0x5d, 0x94, 0xeb, 0xb8, 0x4e, 0x48, 0xcf, 0x24, 0x7e, 0x94, 0x79, 0xc0, 0x06, 0x50, + 0xd5, 0x1f, 0x2d, 0x64, 0x4a, 0x04, 0x4b, 0x79, 0x76, 0x71, 0xed, 0x56, 0x6a, 0x9a, 0x12, 0x6e, + 0xb1, 0x8e, 0x65, 0xa3, 0x21, 0xea, 0x98, 0x20, 0x46, 0x5c, 0xcb, 0x90, 0xc4, 0xfd, 0xf8, 0x6d, + 0x42, 0x76, 0x5b, 0x13, 0xd8, 0x66, 0x5e, 0x46, 0x5c, 0xbb, 0x73, 0x4d, 0xaa, 0xac, 0xeb, 0x0e, + 0xd6, 0xb5, 0x6a, 0x30, 0x51, 0x57, 0x1f, 0x71, 0xd4, 0xcb, 0x88, 0x1f, 0x65, 0x1e, 0x3c, 0xfe, + 0x0f, 0xef, 0x41, 0x39, 0x72, 0xce, 0x65, 0xbf, 0x09, 0xb5, 0x44, 0xb4, 0x24, 0x53, 0xdd, 0x48, + 0x0b, 0xae, 0x5c, 0xbb, 0x9d, 0x9e, 0x28, 0x2b, 0x7e, 0x03, 0x2b, 0x6e, 0xb2, 0x15, 0x51, 0xb1, + 0x8c, 0x46, 0x7c, 0x88, 0xd1, 0xcd, 0x74, 0x97, 0xe1, 0x0b, 0x4d, 0xad, 0xa1, 0xca, 0x6e, 0x4f, + 0xab, 0x1a, 0x89, 0xda, 0xee, 0x5c, 0x93, 0x2a, 0xab, 0xbb, 0x8d, 0xd5, 0xad, 0xb0, 0x25, 0xbd, + 0x3a, 0xe5, 0xd3, 0xc9, 0x38, 0xde, 0x1f, 0xaa, 0x3f, 0xdd, 0xc7, 0xee, 0xc4, 0xb7, 0x3d, 0xa6, + 0x3c, 0xe9, 0x17, 0x91, 0xc8, 0xec, 0xbb, 0x7e, 0x46, 0x13, 0xab, 0x62, 0x0c, 0xa7, 0x4f, 0x7f, + 0xb9, 0x8f, 0x1d, 0x43, 0x45, 0x7b, 0xed, 0x86, 0xdd, 0xbc, 0xf6, 0x65, 0x9e, 0xb5, 0xb5, 0xb4, + 0xa4, 0xb4, 0xae, 0xe8, 0xe5, 0x3f, 0x3c, 0xe1, 0x9c, 0xfd, 0x2a, 0x94, 0xa3, 0x37, 0x54, 0xd8, + 0xaa, 0xf6, 0xa6, 0x8d, 0xfe, 0xe6, 0xcb, 0x5a, 0x73, 0x36, 0x21, 0x8d, 0xf8, 0xf4, 0xd2, 0x05, + 0xf1, 0x7d, 0x06, 0x15, 0xed, 0x9d, 0x94, 0xa8, 0x03, 0xb3, 0x6f, 0xb1, 0x44, 0x1d, 0x48, 0x79, + 0x56, 0xc5, 0x58, 0xc0, 0x2a, 0x2a, 0xac, 0x8c, 0xf4, 0x1d, 0x5e, 0x7a, 0x01, 0xdb, 0x85, 0x65, + 0xa9, 0xc2, 0x1d, 0xf3, 0x2f, 0x33, 0x0d, 0x29, 0xaf, 0x25, 0x3e, 0xca, 0xb0, 0x8f, 0xa1, 0xa4, + 0x9e, 0xc3, 0x61, 0x2b, 0xe9, 0xcf, 0xfa, 0xac, 0xad, 0xce, 0xc0, 0xa5, 0xbe, 0xf5, 0x1c, 0x20, + 0x7e, 0x94, 0x25, 0x62, 0x12, 0x33, 0x8f, 0xbc, 0x44, 0x14, 0x30, 0xfb, 0x82, 0x8b, 0xb1, 0x82, + 0x1d, 0x6c, 0x30, 0x64, 0x12, 0x2e, 0xbf, 0x50, 0x97, 0x3c, 0xff, 0x08, 0x2a, 0xda, 0xbb, 0x2c, + 0xd1, 0xf0, 0xcd, 0xbe, 0xe9, 0x12, 0x0d, 0x5f, 0xca, 0x33, 0x2e, 0xc6, 0x1a, 0x96, 0xbe, 0x64, + 0xcc, 0x8b, 0xd2, 0x85, 0x0c, 0x27, 0x65, 0x29, 0x31, 0x41, 0x67, 0x50, 0x4b, 0x3c, 0xbe, 0x12, + 0xad, 0xd0, 0xb4, 0xa7, 0x5d, 0xa2, 0x15, 0x9a, 0xfa, 0x5e, 0x8b, 0xa2, 0x33, 0x63, 0x41, 0xd4, + 0x43, 0xf7, 0x3c, 0x69, 0x35, 0xfd, 0x10, 0x2a, 0xda, 0x43, 0x2a, 0x51, 0x5f, 0x66, 0xdf, 0x6c, + 0x89, 0xfa, 0x92, 0xf6, 0xee, 0xca, 0x12, 0xd6, 0x51, 0x37, 0x90, 0x14, 0xf0, 0x9a, 0x5a, 0x51, + 0xf6, 0x6f, 0x42, 0x3d, 0xf9, 0xb6, 0x4a, 0xb4, 0xf6, 0x53, 0x1f, 0x69, 0x89, 0xd6, 0xfe, 0x35, + 0x0f, 0xb2, 0x48, 0x92, 0x7e, 0xb0, 0x18, 0x55, 0xf2, 0xf0, 0x27, 0x32, 0xcc, 0xe8, 0x0b, 0xf6, + 0x89, 0x60, 0x70, 0xf2, 0x96, 0x64, 0xb6, 0xaa, 0x51, 0xad, 0x7e, 0xdd, 0x72, 0xb4, 0x5e, 0x66, + 0x2e, 0x54, 0x4e, 0x12, 0x33, 0x16, 0xce, 0x9e, 0xc2, 0x62, 0x44, 0xcc, 0xd1, 0xb5, 0xc7, 0x41, + 0xd4, 0x87, 0xd4, 0xcb, 0x95, 0xd7, 0x1a, 0xd3, 0xa9, 0x8f, 0x32, 0xb4, 0xfd, 0xe1, 0x65, 0xb3, + 0xda, 0xf6, 0xa7, 0xdf, 0x7c, 0xac, 0x6d, 0x7f, 0x89, 0x3b, 0x69, 0xa7, 0xb7, 0xbf, 0xd0, 0x11, + 0x65, 0xb8, 0x30, 0x3f, 0x7d, 0x09, 0xf1, 0x9d, 0xeb, 0xae, 0x71, 0xa0, 0xe2, 0xdf, 0x78, 0xf9, + 0x2d, 0x0f, 0x49, 0x56, 0xa4, 0xb8, 0xe9, 0x43, 0xe9, 0xd5, 0xc2, 0x7e, 0x1d, 0xaa, 0xfa, 0x7b, + 0x0c, 0x4c, 0xe7, 0x09, 0xd3, 0x35, 0xdd, 0x4a, 0x4d, 0x4b, 0x52, 0x09, 0xab, 0xea, 0xd5, 0xb0, + 0x4f, 0x61, 0x25, 0x1a, 0x66, 0xfd, 0x1e, 0x82, 0x80, 0xdd, 0x4d, 0xb9, 0x9d, 0x20, 0x31, 0xd8, + 0x37, 0xaf, 0xbd, 0xbe, 0xe0, 0x51, 0x46, 0x50, 0x5f, 0xf2, 0x62, 0xf8, 0x78, 0xe7, 0x49, 0xbb, + 0x0f, 0x3f, 0xde, 0x79, 0x52, 0x6f, 0x93, 0x57, 0xd4, 0xc7, 0x16, 0x13, 0x63, 0x44, 0xfe, 0xbe, + 0xec, 0x87, 0x30, 0xaf, 0x5d, 0xb2, 0xd0, 0xbd, 0x72, 0xfb, 0xd1, 0x4a, 0x9a, 0xbd, 0x5e, 0x74, + 0x2d, 0xed, 0xd0, 0xd3, 0x58, 0xc5, 0xf2, 0x17, 0x8c, 0xc4, 0xe0, 0x88, 0x55, 0xb4, 0x09, 0x15, + 0xfd, 0x02, 0x87, 0x97, 0x94, 0xbb, 0xaa, 0x25, 0xe9, 0x37, 0x59, 0x3e, 0xca, 0xb0, 0x5d, 0x68, + 0x4c, 0x5f, 0xae, 0x16, 0xf1, 0x94, 0xb4, 0x0b, 0xe9, 0xd6, 0xa6, 0x12, 0x13, 0x57, 0xb2, 0xb1, + 0x43, 0x8a, 0x18, 0x89, 0x9e, 0x16, 0xf4, 0xfc, 0xe9, 0x5d, 0x3d, 0xf9, 0xe4, 0x60, 0x54, 0x5a, + 0xda, 0x63, 0x93, 0xf7, 0x33, 0x8f, 0x32, 0xec, 0xf7, 0x32, 0x50, 0x4d, 0x5c, 0x37, 0x94, 0xf0, + 0xc9, 0x9f, 0xea, 0x67, 0x53, 0x4f, 0xd3, 0x3b, 0x6a, 0x98, 0x38, 0x88, 0xbb, 0x0f, 0x7e, 0x90, + 0x98, 0xa4, 0x9f, 0x24, 0x6c, 0x86, 0xeb, 0xd3, 0x6f, 0x0f, 0x7e, 0x31, 0x8d, 0xa0, 0x5f, 0x58, + 0xfb, 0xc5, 0xa3, 0x0c, 0xfb, 0x97, 0x19, 0xa8, 0x27, 0x9d, 0x01, 0xa2, 0xee, 0xa6, 0xba, 0x1d, + 0x44, 0xa4, 0x74, 0x8d, 0x07, 0xc1, 0x0f, 0xb1, 0x95, 0xbd, 0x07, 0x66, 0xa2, 0x95, 0xf2, 0x49, + 0x83, 0x9f, 0xaf, 0xb5, 0xec, 0x97, 0xe9, 0xa9, 0x5f, 0xe5, 0x23, 0xc5, 0x66, 0x9f, 0x86, 0x8d, + 0xc8, 0x4f, 0x7f, 0x48, 0xd5, 0xc8, 0xfd, 0x76, 0x36, 0x83, 0x33, 0xf1, 0x23, 0x7a, 0x68, 0x4f, + 0xf9, 0xdd, 0x08, 0x52, 0x7e, 0xed, 0x42, 0xde, 0xc6, 0x8e, 0xbd, 0x61, 0xdc, 0x4c, 0x74, 0x6c, + 0x5a, 0xfa, 0x68, 0x51, 0x13, 0xe5, 0x63, 0xa8, 0xf1, 0xf6, 0x39, 0xf3, 0x40, 0x6a, 0x6a, 0x25, + 0xd8, 0xc8, 0x11, 0x35, 0x52, 0xa2, 0x27, 0xd6, 0xdb, 0x6b, 0x16, 0x63, 0x3c, 0xc0, 0xb6, 0xbe, + 0x6d, 0xdc, 0xbd, 0xb6, 0xad, 0x0f, 0xd1, 0xba, 0x2f, 0x5a, 0x7c, 0x08, 0x10, 0x3b, 0x32, 0xb2, + 0x29, 0x77, 0xba, 0x88, 0x0b, 0xcd, 0xfa, 0x3a, 0x26, 0x17, 0xb5, 0xf2, 0xba, 0x13, 0x25, 0xfe, + 0x2a, 0xf1, 0xd4, 0xc8, 0xd1, 0x4f, 0x17, 0xc1, 0x92, 0x3e, 0x87, 0x09, 0x11, 0x6c, 0xba, 0xfc, + 0x04, 0x47, 0x8d, 0xbc, 0xfa, 0x8e, 0xa0, 0xb6, 0xeb, 0x79, 0x2f, 0x26, 0xe3, 0xc8, 0x79, 0x3e, + 0xe9, 0x72, 0xb3, 0x63, 0x07, 0x67, 0x6b, 0x53, 0xbd, 0x30, 0xee, 0x61, 0x51, 0x6b, 0xac, 0xa9, + 0x15, 0xf5, 0xf0, 0x27, 0xb1, 0xf7, 0xe4, 0x17, 0xcc, 0x86, 0x85, 0x88, 0x51, 0xc7, 0x1e, 0x8a, + 0xc9, 0x62, 0x12, 0xec, 0x79, 0xba, 0x8a, 0x84, 0xae, 0xa0, 0x5a, 0xfb, 0x30, 0x50, 0x65, 0x3e, + 0xca, 0xb0, 0x43, 0xa8, 0x6e, 0xf1, 0x3e, 0xde, 0xbe, 0x80, 0x8e, 0x2b, 0x8b, 0x09, 0x27, 0x08, + 0xf2, 0x78, 0x59, 0xab, 0x25, 0x80, 0xc9, 0xcd, 0x6b, 0x6c, 0x5f, 0xf9, 0xfc, 0xf3, 0x87, 0x3f, + 0x91, 0x2e, 0x31, 0x5f, 0xa8, 0xcd, 0x4b, 0xb9, 0x0c, 0x25, 0x36, 0xaf, 0x29, 0x1f, 0xa3, 0xc4, + 0xe6, 0x35, 0xe3, 0x63, 0x94, 0x18, 0x6a, 0xe5, 0xb2, 0xc4, 0x86, 0xb0, 0x30, 0xe3, 0x96, 0x14, + 0xed, 0x5b, 0xd7, 0x39, 0x33, 0xad, 0xdd, 0xbb, 0x1e, 0x21, 0x59, 0xdb, 0x83, 0x64, 0x6d, 0x5d, + 0xa8, 0xd1, 0x95, 0xb4, 0xc7, 0x9c, 0xe2, 0x30, 0xa7, 0x2e, 0x31, 0xd2, 0x83, 0x3c, 0xa7, 0x77, + 0x19, 0x4c, 0x4b, 0x8a, 0x39, 0x18, 0x89, 0xc7, 0x4e, 0xf0, 0x1d, 0x06, 0x2d, 0xf0, 0x31, 0x22, + 0xc6, 0xd9, 0x60, 0xcc, 0x88, 0x18, 0x53, 0xe2, 0x24, 0x95, 0x0e, 0xca, 0x96, 0xa3, 0xb2, 0x1f, + 0xba, 0xde, 0x80, 0x8f, 0x64, 0xa9, 0xbf, 0x0a, 0x95, 0xa7, 0x3c, 0x54, 0x91, 0x86, 0x91, 0x40, + 0x3f, 0x15, 0x7a, 0xb8, 0x96, 0x12, 0x1f, 0x9a, 0xa4, 0x4d, 0x2a, 0x99, 0x0f, 0x4e, 0x39, 0x71, + 0x42, 0xcb, 0x19, 0x7c, 0xc1, 0x7e, 0x05, 0x0b, 0x8f, 0xe2, 0xea, 0x57, 0xb4, 0x66, 0xea, 0x85, + 0xcf, 0x4f, 0xc1, 0xd3, 0x4a, 0x16, 0x6d, 0xd6, 0x04, 0x4b, 0x17, 0x2a, 0xda, 0xfd, 0x1b, 0xd1, + 0xd8, 0xcc, 0xde, 0xb7, 0x12, 0x8d, 0x4d, 0xca, 0x75, 0x1d, 0xc6, 0x7d, 0xac, 0xc7, 0x60, 0xf7, + 0xe2, 0x7a, 0xe8, 0x8a, 0x8e, 0xb8, 0xa6, 0x87, 0x3f, 0xb1, 0x47, 0xe1, 0x17, 0xec, 0x33, 0x9a, + 0x0e, 0x2d, 0x92, 0x32, 0xd6, 0x50, 0xa6, 0x83, 0x2e, 0xa3, 0xc1, 0xd2, 0x92, 0x92, 0x5a, 0x0b, + 0x55, 0x85, 0x62, 0xe3, 0x13, 0x80, 0x6e, 0xe8, 0x8d, 0xb7, 0x6c, 0x3e, 0xf2, 0xdc, 0x98, 0xa7, + 0xc7, 0xb1, 0x7d, 0x31, 0x9f, 0xd4, 0x02, 0xfc, 0xd8, 0x67, 0x9a, 0x4a, 0x97, 0x88, 0x01, 0x56, + 0x44, 0x7c, 0x6d, 0xf8, 0x5f, 0x34, 0x20, 0x29, 0x21, 0x80, 0x8f, 0x32, 0xac, 0x05, 0x10, 0xfb, + 0xbf, 0x45, 0x0a, 0xda, 0x8c, 0x6b, 0x5d, 0xc4, 0x5e, 0x53, 0x9c, 0xe5, 0x0e, 0xa1, 0x1c, 0x3b, + 0x0e, 0xad, 0xc6, 0xd7, 0x09, 0x25, 0xdc, 0x8c, 0x22, 0x71, 0x61, 0xc6, 0x69, 0xc7, 0x68, 0xe0, + 0x50, 0x01, 0x2b, 0x89, 0xa1, 0x3a, 0xe1, 0x3c, 0x60, 0x0e, 0x2c, 0x52, 0x03, 0x23, 0xd9, 0x0c, + 0x63, 0xd2, 0xa2, 0xd7, 0x4f, 0x66, 0xfd, 0x67, 0x22, 0xae, 0x91, 0xea, 0x05, 0x92, 0x38, 0x67, + 0x12, 0xd4, 0x4a, 0xf1, 0x70, 0x62, 0x0b, 0x18, 0xc1, 0xc2, 0x8c, 0xa3, 0x41, 0xc4, 0x3a, 0xae, + 0xf3, 0x1c, 0x89, 0x58, 0xc7, 0xb5, 0x3e, 0x0a, 0xc6, 0x32, 0x56, 0x39, 0x6f, 0x00, 0xea, 0x95, + 0x17, 0x4e, 0xd8, 0x3f, 0x13, 0xd5, 0xfd, 0x41, 0x06, 0x16, 0x53, 0x5c, 0x09, 0xd8, 0x9b, 0xea, + 0x88, 0xe2, 0x5a, 0x37, 0x83, 0xb5, 0x54, 0x93, 0xb3, 0xd1, 0xc5, 0x7a, 0xf6, 0xd8, 0xb3, 0xc4, + 0x06, 0x4a, 0x16, 0x5f, 0xb9, 0x32, 0x5f, 0x2a, 0xc1, 0xa4, 0x8a, 0x2f, 0x9f, 0xc3, 0x2a, 0x35, + 0xa4, 0x35, 0x1c, 0x4e, 0x99, 0xc3, 0xdf, 0xd0, 0x5a, 0x91, 0x62, 0xe2, 0x4f, 0x28, 0x03, 0x49, + 0x33, 0xff, 0x35, 0xb2, 0x3b, 0x35, 0x95, 0x4d, 0xa0, 0x31, 0x6d, 0x66, 0x66, 0xd7, 0x97, 0xb5, + 0x76, 0x37, 0xa1, 0x6c, 0xa7, 0x98, 0xa6, 0xbf, 0x86, 0x95, 0xdd, 0x35, 0xd6, 0xd2, 0xc6, 0x85, + 0xf4, 0x6f, 0x31, 0x1f, 0xff, 0x7f, 0x64, 0x13, 0x9f, 0xea, 0xe7, 0xdd, 0xe8, 0xbe, 0xf7, 0x74, + 0x0b, 0x7e, 0xa4, 0xee, 0xa7, 0x9b, 0xd4, 0xdf, 0xc1, 0xea, 0xef, 0x19, 0xb7, 0xd2, 0xaa, 0xf7, + 0x29, 0x0b, 0x29, 0xfe, 0xab, 0xd3, 0xeb, 0x5a, 0xb5, 0xe0, 0x5e, 0xda, 0x7c, 0x5f, 0xab, 0x78, + 0x4d, 0x8d, 0xf5, 0x0d, 0x94, 0x21, 0xab, 0xba, 0x0d, 0x3c, 0x5a, 0x3e, 0x29, 0xc6, 0xf6, 0x68, + 0xf9, 0xa4, 0x19, 0xcd, 0x93, 0xf2, 0x93, 0x32, 0x97, 0x7f, 0x94, 0x79, 0xb0, 0xf1, 0xee, 0x0f, + 0xbf, 0x76, 0xea, 0x84, 0x67, 0x93, 0xe3, 0xf5, 0xbe, 0x37, 0x7a, 0x38, 0x54, 0x47, 0x9b, 0x32, + 0x70, 0xfb, 0xe1, 0xd0, 0x1d, 0x3c, 0xc4, 0x62, 0x8f, 0xe7, 0xc6, 0xbe, 0x17, 0x7a, 0xdf, 0xfc, + 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x4e, 0xb1, 0xa4, 0x40, 0x5a, 0x89, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -12999,10 +12999,11 @@ type LightningClient interface { //when in debug builds of lnd. AbandonChannel(ctx context.Context, in *AbandonChannelRequest, opts ...grpc.CallOption) (*AbandonChannelResponse, error) //* lncli: `sendpayment` - //SendPayment dispatches a bi-directional streaming RPC for sending payments - //through the Lightning Network. A single RPC invocation creates a persistent - //bi-directional stream allowing clients to rapidly send payments through the - //Lightning Network with a single persistent connection. + //Deprecated, use routerrpc.SendPayment. SendPayment dispatches a + //bi-directional streaming RPC for sending payments through the Lightning + //Network. A single RPC invocation creates a persistent bi-directional + //stream allowing clients to rapidly send payments through the Lightning + //Network with a single persistent connection. SendPayment(ctx context.Context, opts ...grpc.CallOption) (Lightning_SendPaymentClient, error) //* //SendPaymentSync is the synchronous non-streaming version of SendPayment. @@ -13553,6 +13554,7 @@ func (c *lightningClient) AbandonChannel(ctx context.Context, in *AbandonChannel return out, nil } +// Deprecated: Do not use. func (c *lightningClient) SendPayment(ctx context.Context, opts ...grpc.CallOption) (Lightning_SendPaymentClient, error) { stream, err := c.cc.NewStream(ctx, &_Lightning_serviceDesc.Streams[6], "/lnrpc.Lightning/SendPayment", opts...) if err != nil { @@ -14074,10 +14076,11 @@ type LightningServer interface { //when in debug builds of lnd. AbandonChannel(context.Context, *AbandonChannelRequest) (*AbandonChannelResponse, error) //* lncli: `sendpayment` - //SendPayment dispatches a bi-directional streaming RPC for sending payments - //through the Lightning Network. A single RPC invocation creates a persistent - //bi-directional stream allowing clients to rapidly send payments through the - //Lightning Network with a single persistent connection. + //Deprecated, use routerrpc.SendPayment. SendPayment dispatches a + //bi-directional streaming RPC for sending payments through the Lightning + //Network. A single RPC invocation creates a persistent bi-directional + //stream allowing clients to rapidly send payments through the Lightning + //Network with a single persistent connection. SendPayment(Lightning_SendPaymentServer) error //* //SendPaymentSync is the synchronous non-streaming version of SendPayment. diff --git a/lnrpc/rpc.proto b/lnrpc/rpc.proto index df2ed7ee92..001944a0c2 100644 --- a/lnrpc/rpc.proto +++ b/lnrpc/rpc.proto @@ -503,12 +503,15 @@ service Lightning { } /** lncli: `sendpayment` - SendPayment dispatches a bi-directional streaming RPC for sending payments - through the Lightning Network. A single RPC invocation creates a persistent - bi-directional stream allowing clients to rapidly send payments through the - Lightning Network with a single persistent connection. - */ - rpc SendPayment (stream SendRequest) returns (stream SendResponse); + Deprecated, use routerrpc.SendPayment. SendPayment dispatches a + bi-directional streaming RPC for sending payments through the Lightning + Network. A single RPC invocation creates a persistent bi-directional + stream allowing clients to rapidly send payments through the Lightning + Network with a single persistent connection. + */ + rpc SendPayment (stream SendRequest) returns (stream SendResponse) { + option deprecated = true; + } /** SendPaymentSync is the synchronous non-streaming version of SendPayment. diff --git a/make/testing_flags.mk b/make/testing_flags.mk index e4f5661c0d..aab09bb5eb 100644 --- a/make/testing_flags.mk +++ b/make/testing_flags.mk @@ -61,6 +61,6 @@ backend = btcd endif # Construct the integration test command with the added build flags. -ITEST_TAGS := $(DEV_TAGS) rpctest chainrpc walletrpc signrpc invoicesrpc autopilotrpc routerrpc watchtowerrpc $(backend) +ITEST_TAGS := $(DEV_TAGS) rpctest chainrpc walletrpc signrpc invoicesrpc autopilotrpc watchtowerrpc $(backend) ITEST := rm lntest/itest/*.log; date; $(GOTEST) -v ./lntest/itest -tags="$(ITEST_TAGS)" $(TEST_FLAGS) -logoutput -goroutinedump diff --git a/mobile/README.md b/mobile/README.md index 077e9498ef..3a2662323c 100644 --- a/mobile/README.md +++ b/mobile/README.md @@ -53,14 +53,14 @@ Similar to lnd, subservers can be conditionally compiled with the build by setting the tags argument: ``` -make ios tags="routerrpc" +make ios ``` To support subservers that have APIs with name conflicts, pass the "prefix" flag. This will add the subserver name as a prefix to each method name: ``` -make ios tags="routerrpc" prefix=1 +make ios prefix=1 ``` ### API docs diff --git a/subrpcserver_config.go b/subrpcserver_config.go index 31e8220b41..4855911881 100644 --- a/subrpcserver_config.go +++ b/subrpcserver_config.go @@ -219,21 +219,9 @@ func (s *subRPCServerConfigs) PopulateDependencies(cc *chainControl, reflect.ValueOf(genInvoiceFeatures), ) + // RouterRPC isn't conditionally compiled and doesn't need to be + // populated using reflection. case *routerrpc.Config: - subCfgValue := extractReflectValue(subCfg) - - subCfgValue.FieldByName("NetworkDir").Set( - reflect.ValueOf(networkDir), - ) - subCfgValue.FieldByName("MacService").Set( - reflect.ValueOf(macService), - ) - subCfgValue.FieldByName("Router").Set( - reflect.ValueOf(chanRouter), - ) - subCfgValue.FieldByName("RouterBackend").Set( - reflect.ValueOf(routerBackend), - ) case *watchtowerrpc.Config: subCfgValue := extractReflectValue(subCfg) @@ -266,6 +254,12 @@ func (s *subRPCServerConfigs) PopulateDependencies(cc *chainControl, } } + // Populate routerrpc dependencies. + s.RouterRPC.NetworkDir = networkDir + s.RouterRPC.MacService = macService + s.RouterRPC.Router = chanRouter + s.RouterRPC.RouterBackend = routerBackend + return nil }