* [PATCH 0/5] Teach git annotate to use parse option instead of its own argv @ 2019-11-03 3:51 Abimbola Olaitan via GitGitGadget 2019-11-03 3:51 ` [PATCH 1/5] remove-annotate: change cmd_annotate to cmd_blame Abimbola via GitGitGadget ` (4 more replies) 0 siblings, 5 replies; 9+ messages in thread From: Abimbola Olaitan via GitGitGadget @ 2019-11-03 3:51 UTC (permalink / raw) To: git; +Cc: Abimbola Olaitan, Junio C Hamano The file builtIn/annotate.c was removed, letting git annotate use the cmd_blame directly. =================== The following files were edited =============================== --- Makefile --- git.c --- builtIn/annotate.c was removed Abimbola (5): remove-annotate: change cmd_annotate to cmd_blame edit the makefile remove-annotate: comment out annotate BUILDIN_OBJS remove-annotate: delete builtin annotate file fix unproper comment in Makefile Makefile | 1 - annotate.txt | Bin 0 -> 163170 bytes blame.txt | Bin 0 -> 177882 bytes builtin/annotate.c | 22 ------- git.c | 143 ++++++++++++++++++++++++++------------------- 5 files changed, 82 insertions(+), 84 deletions(-) create mode 100644 annotate.txt create mode 100644 blame.txt delete mode 100644 builtin/annotate.c base-commit: efd54442381a2792186abc994060b8f7dd8b834b Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-442%2Fcraftword%2Fremove-annotate-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-442/craftword/remove-annotate-v1 Pull-Request: https://github.com/gitgitgadget/git/pull/442 -- gitgitgadget ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/5] remove-annotate: change cmd_annotate to cmd_blame 2019-11-03 3:51 [PATCH 0/5] Teach git annotate to use parse option instead of its own argv Abimbola Olaitan via GitGitGadget @ 2019-11-03 3:51 ` Abimbola via GitGitGadget 2019-11-03 19:59 ` Jakub Narebski 2019-11-03 3:51 ` [PATCH 2/5] edit the makefile Abimbola via GitGitGadget ` (3 subsequent siblings) 4 siblings, 1 reply; 9+ messages in thread From: Abimbola via GitGitGadget @ 2019-11-03 3:51 UTC (permalink / raw) To: git; +Cc: Abimbola Olaitan, Junio C Hamano, Abimbola From: Abimbola <craftwordltd@gmail.com> Changing this command is to remove the annotate.c file which does almost the same thing as blame.c. git annotate will invoc blame directly Signed-off-by: Abimbola <craftwordltd@gmail.com> --- git.c | 143 +++++++++++++++++++++++++++++++++------------------------- 1 file changed, 82 insertions(+), 61 deletions(-) diff --git a/git.c b/git.c index ce6ab0ece2..84042846b5 100644 --- a/git.c +++ b/git.c @@ -5,17 +5,17 @@ #include "run-command.h" #include "alias.h" -#define RUN_SETUP (1<<0) -#define RUN_SETUP_GENTLY (1<<1) -#define USE_PAGER (1<<2) +#define RUN_SETUP (1 << 0) +#define RUN_SETUP_GENTLY (1 << 1) +#define USE_PAGER (1 << 2) /* * require working tree to be present -- anything uses this needs * RUN_SETUP for reading from the configuration file. */ -#define NEED_WORK_TREE (1<<3) -#define SUPPORT_SUPER_PREFIX (1<<4) -#define DELAY_PAGER_CONFIG (1<<5) -#define NO_PARSEOPT (1<<6) /* parse-options is not used */ +#define NEED_WORK_TREE (1 << 3) +#define SUPPORT_SUPER_PREFIX (1 << 4) +#define DELAY_PAGER_CONFIG (1 << 5) +#define NO_PARSEOPT (1 << 6) /* parse-options is not used */ struct cmd_struct { const char *cmd; @@ -23,22 +23,23 @@ struct cmd_struct { unsigned int option; }; -const char git_usage_string[] = - N_("git [--version] [--help] [-C <path>] [-c <name>=<value>]\n" - " [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]\n" - " [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]\n" - " [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]\n" - " <command> [<args>]"); +const char git_usage_string[] = N_( + "git [--version] [--help] [-C <path>] [-c <name>=<value>]\n" + " [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]\n" + " [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]\n" + " [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]\n" + " <command> [<args>]"); -const char git_more_info_string[] = - N_("'git help -a' and 'git help -g' list available subcommands and some\n" - "concept guides. See 'git help <command>' or 'git help <concept>'\n" - "to read about a specific subcommand or concept.\n" - "See 'git help git' for an overview of the system."); +const char git_more_info_string[] = N_( + "'git help -a' and 'git help -g' list available subcommands and some\n" + "concept guides. See 'git help <command>' or 'git help <concept>'\n" + "to read about a specific subcommand or concept.\n" + "See 'git help git' for an overview of the system."); static int use_pager = -1; -static void list_builtins(struct string_list *list, unsigned int exclude_option); +static void list_builtins(struct string_list *list, + unsigned int exclude_option); static void exclude_helpers_from_list(struct string_list *list) { @@ -66,9 +67,9 @@ static int list_cmds(const char *spec) int nongit; /* - * Set up the repository so we can pick up any repo-level config (like - * completion.commands). - */ + * Set up the repository so we can pick up any repo-level config (like + * completion.commands). + */ setup_git_directory_gently(&nongit); while (*spec) { @@ -93,8 +94,7 @@ static int list_cmds(const char *spec) strbuf_add(&sb, spec + 5, len - 5); list_cmds_by_category(&list, sb.buf); strbuf_release(&sb); - } - else + } else die(_("unsupported command listing type '%s'"), spec); spec += len; if (*spec == ',') @@ -183,7 +183,8 @@ static int handle_options(const char ***argv, int *argc, int *envchanged) *envchanged = 1; } else if (!strcmp(cmd, "--git-dir")) { if (*argc < 2) { - fprintf(stderr, _("no directory given for --git-dir\n" )); + fprintf(stderr, + _("no directory given for --git-dir\n")); usage(git_usage_string); } setenv(GIT_DIR_ENVIRONMENT, (*argv)[1], 1); @@ -197,7 +198,8 @@ static int handle_options(const char ***argv, int *argc, int *envchanged) *envchanged = 1; } else if (!strcmp(cmd, "--namespace")) { if (*argc < 2) { - fprintf(stderr, _("no namespace given for --namespace\n" )); + fprintf(stderr, + _("no namespace given for --namespace\n")); usage(git_usage_string); } setenv(GIT_NAMESPACE_ENVIRONMENT, (*argv)[1], 1); @@ -211,7 +213,8 @@ static int handle_options(const char ***argv, int *argc, int *envchanged) *envchanged = 1; } else if (!strcmp(cmd, "--work-tree")) { if (*argc < 2) { - fprintf(stderr, _("no directory given for --work-tree\n" )); + fprintf(stderr, + _("no directory given for --work-tree\n")); usage(git_usage_string); } setenv(GIT_WORK_TREE_ENVIRONMENT, (*argv)[1], 1); @@ -225,7 +228,8 @@ static int handle_options(const char ***argv, int *argc, int *envchanged) *envchanged = 1; } else if (!strcmp(cmd, "--super-prefix")) { if (*argc < 2) { - fprintf(stderr, _("no prefix given for --super-prefix\n" )); + fprintf(stderr, + _("no prefix given for --super-prefix\n")); usage(git_usage_string); } setenv(GIT_SUPER_PREFIX_ENVIRONMENT, (*argv)[1], 1); @@ -247,7 +251,8 @@ static int handle_options(const char ***argv, int *argc, int *envchanged) *envchanged = 1; } else if (!strcmp(cmd, "-c")) { if (*argc < 2) { - fprintf(stderr, _("-c expects a configuration string\n" )); + fprintf(stderr, + _("-c expects a configuration string\n")); usage(git_usage_string); } git_config_push_parameter((*argv)[1]); @@ -280,17 +285,20 @@ static int handle_options(const char ***argv, int *argc, int *envchanged) } else if (!strcmp(cmd, "--shallow-file")) { (*argv)++; (*argc)--; - set_alternate_shallow_file(the_repository, (*argv)[0], 1); + set_alternate_shallow_file(the_repository, (*argv)[0], + 1); if (envchanged) *envchanged = 1; } else if (!strcmp(cmd, "-C")) { if (*argc < 2) { - fprintf(stderr, _("no directory given for -C\n" )); + fprintf(stderr, + _("no directory given for -C\n")); usage(git_usage_string); } if ((*argv)[1][0]) { if (chdir((*argv)[1])) - die_errno("cannot change to '%s'", (*argv)[1]); + die_errno("cannot change to '%s'", + (*argv)[1]); if (envchanged) *envchanged = 1; } @@ -354,7 +362,7 @@ static int handle_alias(int *argcp, const char ***argv) trace2_cmd_name("_run_shell_alias_"); ret = run_command(&child); - if (ret >= 0) /* normal exit */ + if (ret >= 0) /* normal exit */ exit(ret); die_errno(_("while expanding alias '%s': '%s'"), @@ -378,8 +386,7 @@ static int handle_alias(int *argcp, const char ***argv) if (!strcmp(alias_command, new_argv[0])) die(_("recursive alias: %s"), alias_command); - trace_argv_printf(new_argv, - "trace: alias expansion: %s =>", + trace_argv_printf(new_argv, "trace: alias expansion: %s =>", alias_command); REALLOC_ARRAY(new_argv, count + *argcp); @@ -416,14 +423,16 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv) prefix = setup_git_directory_gently(&nongit_ok); } - if (use_pager == -1 && p->option & (RUN_SETUP | RUN_SETUP_GENTLY) && + if (use_pager == -1 && + p->option & (RUN_SETUP | RUN_SETUP_GENTLY) && !(p->option & DELAY_PAGER_CONFIG)) use_pager = check_pager_config(p->cmd); if (use_pager == -1 && p->option & USE_PAGER) use_pager = 1; if ((p->option & (RUN_SETUP | RUN_SETUP_GENTLY)) && - startup_info->have_repository) /* get_git_dir() may set up repo, avoid that */ + startup_info->have_repository) /* get_git_dir() may set up + repo, avoid that */ trace_repo_setup(prefix); } commit_pager_choice(); @@ -467,7 +476,7 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv) static struct cmd_struct commands[] = { { "add", cmd_add, RUN_SETUP | NEED_WORK_TREE }, { "am", cmd_am, RUN_SETUP | NEED_WORK_TREE }, - { "annotate", cmd_annotate, RUN_SETUP | NO_PARSEOPT }, + { "annotate", cmd_blame, RUN_SETUP }, { "apply", cmd_apply, RUN_SETUP_GENTLY }, { "archive", cmd_archive, RUN_SETUP_GENTLY }, { "bisect--helper", cmd_bisect__helper, RUN_SETUP }, @@ -478,10 +487,9 @@ static struct cmd_struct commands[] = { { "check-attr", cmd_check_attr, RUN_SETUP }, { "check-ignore", cmd_check_ignore, RUN_SETUP | NEED_WORK_TREE }, { "check-mailmap", cmd_check_mailmap, RUN_SETUP }, - { "check-ref-format", cmd_check_ref_format, NO_PARSEOPT }, + { "check-ref-format", cmd_check_ref_format, NO_PARSEOPT }, { "checkout", cmd_checkout, RUN_SETUP | NEED_WORK_TREE }, - { "checkout-index", cmd_checkout_index, - RUN_SETUP | NEED_WORK_TREE}, + { "checkout-index", cmd_checkout_index, RUN_SETUP | NEED_WORK_TREE }, { "cherry", cmd_cherry, RUN_SETUP }, { "cherry-pick", cmd_cherry_pick, RUN_SETUP | NEED_WORK_TREE }, { "clean", cmd_clean, RUN_SETUP | NEED_WORK_TREE }, @@ -495,7 +503,8 @@ static struct cmd_struct commands[] = { { "credential", cmd_credential, RUN_SETUP_GENTLY | NO_PARSEOPT }, { "describe", cmd_describe, RUN_SETUP }, { "diff", cmd_diff, NO_PARSEOPT }, - { "diff-files", cmd_diff_files, RUN_SETUP | NEED_WORK_TREE | NO_PARSEOPT }, + { "diff-files", cmd_diff_files, + RUN_SETUP | NEED_WORK_TREE | NO_PARSEOPT }, { "diff-index", cmd_diff_index, RUN_SETUP | NO_PARSEOPT }, { "diff-tree", cmd_diff_tree, RUN_SETUP | NO_PARSEOPT }, { "difftool", cmd_difftool, RUN_SETUP_GENTLY }, @@ -528,10 +537,14 @@ static struct cmd_struct commands[] = { { "merge-file", cmd_merge_file, RUN_SETUP_GENTLY }, { "merge-index", cmd_merge_index, RUN_SETUP | NO_PARSEOPT }, { "merge-ours", cmd_merge_ours, RUN_SETUP | NO_PARSEOPT }, - { "merge-recursive", cmd_merge_recursive, RUN_SETUP | NEED_WORK_TREE | NO_PARSEOPT }, - { "merge-recursive-ours", cmd_merge_recursive, RUN_SETUP | NEED_WORK_TREE | NO_PARSEOPT }, - { "merge-recursive-theirs", cmd_merge_recursive, RUN_SETUP | NEED_WORK_TREE | NO_PARSEOPT }, - { "merge-subtree", cmd_merge_recursive, RUN_SETUP | NEED_WORK_TREE | NO_PARSEOPT }, + { "merge-recursive", cmd_merge_recursive, + RUN_SETUP | NEED_WORK_TREE | NO_PARSEOPT }, + { "merge-recursive-ours", cmd_merge_recursive, + RUN_SETUP | NEED_WORK_TREE | NO_PARSEOPT }, + { "merge-recursive-theirs", cmd_merge_recursive, + RUN_SETUP | NEED_WORK_TREE | NO_PARSEOPT }, + { "merge-subtree", cmd_merge_recursive, + RUN_SETUP | NEED_WORK_TREE | NO_PARSEOPT }, { "merge-tree", cmd_merge_tree, RUN_SETUP | NO_PARSEOPT }, { "mktag", cmd_mktag, RUN_SETUP | NO_PARSEOPT }, { "mktree", cmd_mktree, RUN_SETUP }, @@ -549,9 +562,10 @@ static struct cmd_struct commands[] = { { "pull", cmd_pull, RUN_SETUP | NEED_WORK_TREE }, { "push", cmd_push, RUN_SETUP }, { "range-diff", cmd_range_diff, RUN_SETUP | USE_PAGER }, - { "read-tree", cmd_read_tree, RUN_SETUP | SUPPORT_SUPER_PREFIX}, + { "read-tree", cmd_read_tree, RUN_SETUP | SUPPORT_SUPER_PREFIX }, { "rebase", cmd_rebase, RUN_SETUP | NEED_WORK_TREE }, - { "rebase--interactive", cmd_rebase__interactive, RUN_SETUP | NEED_WORK_TREE }, + { "rebase--interactive", cmd_rebase__interactive, + RUN_SETUP | NEED_WORK_TREE }, { "receive-pack", cmd_receive_pack }, { "reflog", cmd_reflog, RUN_SETUP }, { "remote", cmd_remote, RUN_SETUP }, @@ -581,7 +595,8 @@ static struct cmd_struct commands[] = { { "stash", cmd_stash }, { "status", cmd_status, RUN_SETUP | NEED_WORK_TREE }, { "stripspace", cmd_stripspace }, - { "submodule--helper", cmd_submodule__helper, RUN_SETUP | SUPPORT_SUPER_PREFIX | NO_PARSEOPT }, + { "submodule--helper", cmd_submodule__helper, + RUN_SETUP | SUPPORT_SUPER_PREFIX | NO_PARSEOPT }, { "switch", cmd_switch, RUN_SETUP | NEED_WORK_TREE }, { "symbolic-ref", cmd_symbolic_ref, RUN_SETUP }, { "tag", cmd_tag, RUN_SETUP | DELAY_PAGER_CONFIG }, @@ -623,8 +638,7 @@ static void list_builtins(struct string_list *out, unsigned int exclude_option) { int i; for (i = 0; i < ARRAY_SIZE(commands); i++) { - if (exclude_option && - (commands[i].option & exclude_option)) + if (exclude_option && (commands[i].option & exclude_option)) continue; string_list_append(out, commands[i].cmd); } @@ -752,7 +766,8 @@ static int run_argv(int *argcp, const char ***argv) trace2_cmd_name("_run_git_alias_"); if (get_super_prefix()) - die("%s doesn't support --super-prefix", **argv); + die("%s doesn't support --super-prefix", + **argv); commit_pager_choice(); @@ -764,10 +779,13 @@ static int run_argv(int *argcp, const char ***argv) /* * if we fail because the command is not found, it is - * OK to return. Otherwise, we just pass along the status code. + * OK to return. Otherwise, we just pass along the + * status code. */ - i = run_command_v_opt_tr2(args.argv, RUN_SILENT_EXEC_FAILURE | - RUN_CLEAN_ON_EXIT, "git_alias"); + i = run_command_v_opt_tr2(args.argv, + RUN_SILENT_EXEC_FAILURE | + RUN_CLEAN_ON_EXIT, + "git_alias"); if (i >= 0 || errno != ENOENT) exit(i); die("could not execute builtin %s", **argv); @@ -781,7 +799,8 @@ static int run_argv(int *argcp, const char ***argv) int i; struct strbuf sb = STRBUF_INIT; for (i = 0; i < cmd_list.nr; i++) { - struct string_list_item *item = &cmd_list.items[i]; + struct string_list_item *item = + &cmd_list.items[i]; strbuf_addf(&sb, "\n %s", item->string); if (item == seen) @@ -790,7 +809,8 @@ static int run_argv(int *argcp, const char ***argv) strbuf_addstr(&sb, " ==>"); } die(_("alias loop detected: expansion of '%s' does" - " not terminate:%s"), cmd_list.items[0].string, sb.buf); + " not terminate:%s"), + cmd_list.items[0].string, sb.buf); } string_list_append(&cmd_list, *argv[0]); @@ -872,8 +892,9 @@ int cmd_main(int argc, const char **argv) if (errno != ENOENT) break; if (was_alias) { - fprintf(stderr, _("expansion of alias '%s' failed; " - "'%s' is not a git command\n"), + fprintf(stderr, + _("expansion of alias '%s' failed; " + "'%s' is not a git command\n"), cmd, argv[0]); exit(1); } @@ -884,8 +905,8 @@ int cmd_main(int argc, const char **argv) break; } - fprintf(stderr, _("failed to run command '%s': %s\n"), - cmd, strerror(errno)); + fprintf(stderr, _("failed to run command '%s': %s\n"), cmd, + strerror(errno)); return 1; } -- gitgitgadget ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 1/5] remove-annotate: change cmd_annotate to cmd_blame 2019-11-03 3:51 ` [PATCH 1/5] remove-annotate: change cmd_annotate to cmd_blame Abimbola via GitGitGadget @ 2019-11-03 19:59 ` Jakub Narebski 2019-11-04 4:04 ` Junio C Hamano 0 siblings, 1 reply; 9+ messages in thread From: Jakub Narebski @ 2019-11-03 19:59 UTC (permalink / raw) To: Abimbola via GitGitGadget; +Cc: git, Abimbola Olaitan, Junio C Hamano "Abimbola via GitGitGadget" <gitgitgadget@gmail.com> writes: > Subject: Re: [PATCH 1/5] remove-annotate: change cmd_annotate to cmd_blame > From: Abimbola <craftwordltd@gmail.com> > > Changing this command is to remove the annotate.c file which does almost > the same thing as blame.c. git annotate will invoke blame directly Both the summary and the detailed description of the changes is not entirely clean. What is this 'remove-annotate' subsystem? Why we would want to change cmd_annotate to cmd_blame -- and wouldn't we loose difference (in defaults, and thus in output format) between git-blame and git-annotate? > > Signed-off-by: Abimbola <craftwordltd@gmail.com> Why not Signed-off-by: Abimbola Olaitan <craftwordltd@gmail.com> > --- > git.c | 143 +++++++++++++++++++++++++++++++++------------------------- > 1 file changed, 82 insertions(+), 61 deletions(-) Looks like a big change, strangely. And annotate.c is not actually deleted... > > diff --git a/git.c b/git.c > index ce6ab0ece2..84042846b5 100644 > --- a/git.c > +++ b/git.c > @@ -5,17 +5,17 @@ > #include "run-command.h" > #include "alias.h" > > -#define RUN_SETUP (1<<0) > -#define RUN_SETUP_GENTLY (1<<1) > -#define USE_PAGER (1<<2) > +#define RUN_SETUP (1 << 0) > +#define RUN_SETUP_GENTLY (1 << 1) > +#define USE_PAGER (1 << 2) Please, please do not include such unnecessary (and possibly accidental) changes. It makes review harded (where are the actual changes), and it makes merging it harder (as it can much more easily conflict with other changes in flight). Also, those changes that remove aligning of values make code less readable, and would probably be rejected. [skip whitespace-only changes (I hope)] > -static void list_builtins(struct string_list *list, unsigned int exclude_option); > +static void list_builtins(struct string_list *list, > + unsigned int exclude_option); This may be a good cleanup, but is unrelated to the change in question. Better leave it to a separate patch. [skip horizontal and vertical whitespace changes (I hope)] > @@ -93,8 +94,7 @@ static int list_cmds(const char *spec) > strbuf_add(&sb, spec + 5, len - 5); > list_cmds_by_category(&list, sb.buf); > strbuf_release(&sb); > - } > - else > + } else > die(_("unsupported command listing type '%s'"), spec); > spec += len; > if (*spec == ',') This may be a good cleanup, but is unrelated to the change in question, Better leave it to another separate patch. > @@ -467,7 +476,7 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv) > static struct cmd_struct commands[] = { > { "add", cmd_add, RUN_SETUP | NEED_WORK_TREE }, > { "am", cmd_am, RUN_SETUP | NEED_WORK_TREE }, > - { "annotate", cmd_annotate, RUN_SETUP | NO_PARSEOPT }, > + { "annotate", cmd_blame, RUN_SETUP }, > { "apply", cmd_apply, RUN_SETUP_GENTLY }, > { "archive", cmd_archive, RUN_SETUP_GENTLY }, > { "bisect--helper", cmd_bisect__helper, RUN_SETUP }, That looks like the major portion of the change. How the look and feel of git-annotate command is preserved, though? > @@ -478,10 +487,9 @@ static struct cmd_struct commands[] = { > { "check-attr", cmd_check_attr, RUN_SETUP }, > { "check-ignore", cmd_check_ignore, RUN_SETUP | NEED_WORK_TREE }, > { "check-mailmap", cmd_check_mailmap, RUN_SETUP }, > - { "check-ref-format", cmd_check_ref_format, NO_PARSEOPT }, > + { "check-ref-format", cmd_check_ref_format, NO_PARSEOPT }, This may be a good cleanup, but is unrelated to the change in question. Better leave it to a patch. Regards, -- Jakub Narębski ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/5] remove-annotate: change cmd_annotate to cmd_blame 2019-11-03 19:59 ` Jakub Narebski @ 2019-11-04 4:04 ` Junio C Hamano 0 siblings, 0 replies; 9+ messages in thread From: Junio C Hamano @ 2019-11-04 4:04 UTC (permalink / raw) To: Jakub Narebski; +Cc: Abimbola via GitGitGadget, git, Abimbola Olaitan Jakub Narebski <jnareb@gmail.com> writes: > "Abimbola via GitGitGadget" <gitgitgadget@gmail.com> writes: > >> Subject: Re: [PATCH 1/5] remove-annotate: change cmd_annotate to cmd_blame >> From: Abimbola <craftwordltd@gmail.com> >> >> Changing this command is to remove the annotate.c file which does almost >> the same thing as blame.c. git annotate will invoke blame directly > > Both the summary and the detailed description of the changes is not > entirely clean. What is this 'remove-annotate' subsystem? Why we would > want to change cmd_annotate to cmd_blame -- and wouldn't we loose > difference (in defaults, and thus in output format) between git-blame > and git-annotate? > >> >> Signed-off-by: Abimbola <craftwordltd@gmail.com> > > Why not > > Signed-off-by: Abimbola Olaitan <craftwordltd@gmail.com> > >> --- >> git.c | 143 +++++++++++++++++++++++++++++++++------------------------- >> 1 file changed, 82 insertions(+), 61 deletions(-) > > Looks like a big change, strangely. And annotate.c is not actually > deleted... Thanks for all the good comments. The first priority of any work in this area is not to lose the different defaults between "annotate" and "blame", as the former has ("had", at least when we invented "blame") known uses in widely used script(s), and the solution we took was to use a small annotate.c shim to tell the blame machinery to emit historical "annotate" output format. If we can do so without having the shim, that would be OK. If removal of shim loses the distinction, then it is not. I suspect that cmd_blame() can be taught to look at argv[0] and pretend "-c" was given on the command line, and then the command dispatch table can call cmd_blame() upon seeing "annotate" as the subcommand name, but I haven't actually tried it so there may be hidden dragons. Thanks. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/5] edit the makefile 2019-11-03 3:51 [PATCH 0/5] Teach git annotate to use parse option instead of its own argv Abimbola Olaitan via GitGitGadget 2019-11-03 3:51 ` [PATCH 1/5] remove-annotate: change cmd_annotate to cmd_blame Abimbola via GitGitGadget @ 2019-11-03 3:51 ` Abimbola via GitGitGadget 2019-11-03 3:51 ` [PATCH 3/5] remove-annotate: comment out annotate BUILDIN_OBJS Abimbola via GitGitGadget ` (2 subsequent siblings) 4 siblings, 0 replies; 9+ messages in thread From: Abimbola via GitGitGadget @ 2019-11-03 3:51 UTC (permalink / raw) To: git; +Cc: Abimbola Olaitan, Junio C Hamano, Abimbola From: Abimbola <craftwordltd@gmail.com> Signed-off-by: Abimbola <craftwordltd@gmail.com> --- Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/Makefile b/Makefile index 58b92af54b..41f0fcb78f 100644 --- a/Makefile +++ b/Makefile @@ -1033,7 +1033,6 @@ LIB_OBJS += zlib.o BUILTIN_OBJS += builtin/add.o BUILTIN_OBJS += builtin/am.o -BUILTIN_OBJS += builtin/annotate.o BUILTIN_OBJS += builtin/apply.o BUILTIN_OBJS += builtin/archive.o BUILTIN_OBJS += builtin/bisect--helper.o -- gitgitgadget ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/5] remove-annotate: comment out annotate BUILDIN_OBJS 2019-11-03 3:51 [PATCH 0/5] Teach git annotate to use parse option instead of its own argv Abimbola Olaitan via GitGitGadget 2019-11-03 3:51 ` [PATCH 1/5] remove-annotate: change cmd_annotate to cmd_blame Abimbola via GitGitGadget 2019-11-03 3:51 ` [PATCH 2/5] edit the makefile Abimbola via GitGitGadget @ 2019-11-03 3:51 ` Abimbola via GitGitGadget 2019-11-03 3:51 ` [PATCH 4/5] remove-annotate: delete builtin annotate file Abimbola via GitGitGadget 2019-11-03 3:51 ` [PATCH 5/5] fix unproper comment in Makefile Abimbola via GitGitGadget 4 siblings, 0 replies; 9+ messages in thread From: Abimbola via GitGitGadget @ 2019-11-03 3:51 UTC (permalink / raw) To: git; +Cc: Abimbola Olaitan, Junio C Hamano, Abimbola From: Abimbola <craftwordltd@gmail.com> Signed-off-by: Abimbola <craftwordltd@gmail.com> --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index 41f0fcb78f..a632505ad9 100644 --- a/Makefile +++ b/Makefile @@ -1033,6 +1033,7 @@ LIB_OBJS += zlib.o BUILTIN_OBJS += builtin/add.o BUILTIN_OBJS += builtin/am.o +// BUILTIN_OBJS += builtin/annotate.o BUILTIN_OBJS += builtin/apply.o BUILTIN_OBJS += builtin/archive.o BUILTIN_OBJS += builtin/bisect--helper.o -- gitgitgadget ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 4/5] remove-annotate: delete builtin annotate file 2019-11-03 3:51 [PATCH 0/5] Teach git annotate to use parse option instead of its own argv Abimbola Olaitan via GitGitGadget ` (2 preceding siblings ...) 2019-11-03 3:51 ` [PATCH 3/5] remove-annotate: comment out annotate BUILDIN_OBJS Abimbola via GitGitGadget @ 2019-11-03 3:51 ` Abimbola via GitGitGadget 2019-11-03 3:51 ` [PATCH 5/5] fix unproper comment in Makefile Abimbola via GitGitGadget 4 siblings, 0 replies; 9+ messages in thread From: Abimbola via GitGitGadget @ 2019-11-03 3:51 UTC (permalink / raw) To: git; +Cc: Abimbola Olaitan, Junio C Hamano, Abimbola From: Abimbola <craftwordltd@gmail.com> Signed-off-by: Abimbola <craftwordltd@gmail.com> --- annotate.txt | Bin 0 -> 163170 bytes blame.txt | Bin 0 -> 177882 bytes builtin/annotate.c | 22 ---------------------- 3 files changed, 22 deletions(-) create mode 100644 annotate.txt create mode 100644 blame.txt delete mode 100644 builtin/annotate.c diff --git a/annotate.txt b/annotate.txt new file mode 100644 index 0000000000000000000000000000000000000000..c39e85a8217476b050dd190c58e6988cb3566f96 GIT binary patch literal 163170 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 IfH?C12b-5*h5!Hn literal 0 HcmV?d00001 diff --git a/blame.txt b/blame.txt new file mode 100644 index 0000000000000000000000000000000000000000..f0da3b70966596be154fd2158427f5941967317b GIT binary patch literal 177882 zcmd_T+mc+zk*=9GcNnuVn+MQE5*m^qwF@H7Ah*OZ9zcmA1=0Yh+1lE&GN7seLL?4T z1%PC;^$_!ft(&>)eubIwFaG+=BUY}g6UZHb-Ii8WSu0m&hDUg~|9*`B@Bh8NxUzU> zadB}e{$7j6-Np6A{l#)|Zt;i3^Tp%E!^M;M@1ywneZ2N4ejb-A%ec}$F2?7)v$(q0 zSX_wD<M+F9$A!h^#e4DT{O0;HUU?_JgM0P<3yZhn*)QXp9xt{Q-^RCYFLvU}*~Pth z{xGgQE3chjd>z;Rx5fV&*DsdOy$~baif7yLKc9AP@!?{(jBq=~_&Bb7Ro?$?{ATQX zaix9mz6(J$W75bk#~l~q@m^fHRz`j`uJHP``0<!8t{wAM`R4oajSm(%;_X85wHWQ? z7zy9G9aJ#l+d<t<(80VeWBfZo@3--LH~yP@XvEjch%U$P3uR22<%>ZBvwS_?IUVt( zwIkkHd>`Mp74O)JIohs9eLw!Y5?3$9=U$5EcVqO-#<|6vSPSO#LE(i@;@NKe|2Y26 zjd@wthmmUSH{#PS#GP>6d-40-GTR>YrMS=Ye0lAtzb-TNv>GjQyc3^wHD;6NSK~LU z2`4kdaP?<pln>U7(qk7VzgtFoA%0&hGs-T3ldqRK=98g@-Q&?-Sv%U@vX_|QCo#v` zMfFTyjnBCkKlfw&m*X2Q#fX{9bBmiX$Ill(EdFir)$9K#Ji^@n;`RRsN|xnSUitU< z<mKYya%W8iyr5A+1>@xRd+{CohUb@yU&UWhtan~rOU2#bOjdobnsw&<a*P^Id8f?I z_4qVK{y~g(JNN=h*m*Y!k8H*Bz5U(kk?OC;a3#je{^K{JV|JN!cI3tQ4viOH@~mGg z<3%oT4GD$}g9DH{;((uK7B9u9E|yP3{xGU5@mu?iS*%BOeSa2_Wk`d^@prknwfIx4 z*=Fqe8?lG}wD@vyCLZVFoxh34JMo^;=y>;-bZjnu7c|`rsy<)*xuOZ_J{C=^k~B`c zHh(IsvKedgL80YVvo=Wl(ddxo{Pp7P;YKF?xQvl4iv;+;iY7-EEEnI!?%!Q}b0CSI zl{<LlS<xo<%3V*()xCKBIIbgWH{v&1@`v~z?ejP!<1#*%dyp@>$}{%bPDp^g;pRnJ zSo5+f3zi`%m>bR6-Jrl!-jAzj4pGTm)i~pMym~k22djZ1kT+n6^TW|EeGdJ<9&T*b z-mO%)8B*;=Xx7cZl3#@U{w$u|iN9Q}Wj8B3ntZS(Zz;N6^v;)snma`op@(h+O~^hd z`(*Ly;-4!S&Z><@o3#EfV~^DO_2U@*=OMrUTxhWz-wgZZi_lHb^}C8LRvfxOjaNdi zUn}SfD~SJpI`p*;H((#NxB)CNr<-oZ_@$X{6)p8etkj)`|FqWVg5~0ANQ2!X7dJv8 zJUx&M$i|07R${{;RV6*Q<JpKiQrKfG&I6^gLVGcPp!%&ckFuOLCs%(QY}bHV8T*-i z?EwvFlCKNDzyqS=zYaHU;fXUvA2Q~1G1mK`>)wiI=*VY_|57MH|E*H>_Mxx7wGh4I zNCE6(trH%Yy`b<x`~}gle}#wYeLdcKNzea%e`d$A%djAsS!4=!>c!yvYca3buGeCB zNb28;t9Xm<2G(4L_W-UE#%wKC|0l~8{}G>pcSDvo{({T#9rKne-WtXtBsb;S2eH!6 zLgpi(@w4p2bIBZG!oMv38t?sWp#(43JMm5U4|WPYm*bgiaB$%F@d?=C@+#eq{SNm$ zS-gmQ+6R=_XCNQmrMN@hCH#3<yQ?<%#rRI~E4J;q@X~4Y%f(*`Zhuj}89rtv8Mm(6 zhvO?B#Vfxl+6yfI{=uDF<vQM_NAXGT2i3ocvEz++UjF~<;=jk|$~V}5E~LTF#F%-U z-T&Lpvu7ZEZ|H2O{!5|G|1k%iosD?)S<Jw<F{ge#Uz1O1?iKh2yP|$A=j&SV=Y`<d zt@wLA9<2Vg7&Bh8C-IGNj=BGKtl;-ChAA!jzvdmhICz8L9dix-CVYIYzX|W3ct@Xd z*nB;WcmHerU<)z>a2Z^I2i329dGKr_UNhC~pWSLE^$Par)0oe@LH$mA=9BQj{VkrM z)Ay>o@5LS5I})EEV~#s-8~gilBV@qCpoINn4$57&abTHm1pUyvv-VE!#l7-5%pRZV zt9)j1SnnN)@9;P?^_y7t+B^GxaME9bD%So%@B>txjZc!c?X5j7#eRh<G}*l(^YMJM zf8UM&F2{<nhwqeCd=zqW8Ftab@VZEs;U$=RNR!EDEPa+fSR_9_Py3A1Pk$+{GM2+N z*`xSwxN5WPS|rkXjfU?-+U!zLgJ#A%UTZYsQTT?4J3#BYholmb5~PoHGZOE;_(b9* zXgvAyuf}tEmGK;lXROiQJkV*@TD<4(;>~!kwCggSTkqBPJSg|zIhT&VTXYv5n!7<2 z`Wb8Dc|33V4{ObzjK>_^m%Hj(Q1EVymblD2<-PaH*w2M!h<A+dLtcInpYcuk7O>3R zLo<Yp3Wne}{(Hq{_zp0P<#u|w@qM?uN~@17z~WrSToAnjbr3IDhTV!pnV+TAy~n)D z7dAJmx}SKVzU}>(<D8qF7#rLJuilHX--~D352u?OMS>KWfD1J@_zP;CR?m%)-I=(T z$Jv+<qNs2`oXxu4i!0B|JQ3$Xj-q!S#;700-+7MkjI=X-ekjU~1Woy2tFGO`O55)V zzeA-E<BOP!ozO~L0ndVuv|D~Cdub>3#Q91l_m_jhe#m4bFdV@?y&miRZv4gHbJ}R6 zWU?aF;3__uorwe^axV!+T+b3rxC)sg-!NQd>rsB6&7!@9jj$#7j0^kv4T}Q#h?PP- zZY%y%T<>LLX_7J0F31()eCQSEVa9|IGujSKNE&99oxL4*-YuiTO9yggR$q2h^Knwi zzbgmwPx=wwz8qs^RPFq}2u?-jEsOl+wawV+br!>3jFs!@JJNr$>NXGFhd0JL1K-Aa zPXIPV=1pwI2-4%1Xytn0KqBMJ+P#=R^!Vwx(HRp+MA^FNP(?!FN%&LR#N3D#oNEX_ zZO54Jmi69>y?w8Y<>y&L$GX`gt?j``4_m|O%v!5sOYFtUIx3T^cJj5g2YQ@25%T$Q zf4_}0F5?Z$u!pgp$gFn`{CDGwRr+5NYn)M8H-EQ}5QT}D$KS+{rOifII^b${#&}#{ z?+U(P`M4xM_4`~y1s*go!d}>M55sypzb|<uYmusFLr!fJ1To$|v|ofMqohB07>c$h zmQ%`~&3KIrvYm1tmX>B9=LM=C7JoQeRkkchWekao9~QoYX6PWcKh`d~5;Nry!h^qx z$9S{oc*);~n>}gV@x~>s2d{xyKuh3Va4+6L5Z%v>F<0>kRxG@RY+J?fczmD5*uD;F zfPMK*?3Kqc%6Tu$+wm!~F(m;MMM6?MJ~TR(pPV@Wqs)%9taQ{!t7biGq>^)pq-Ms2 zT%@yf<y^Ifmdhj2l$PyCqq2^~v+^vo<ZhYUoMZ6e-0Z)xcq3kUZ66QdM|u>y1N5GI zB;Uu5$^X2D<E;|@OXP*5>p1I#2Z3>oC0+4tte37v!<&US$R#{lvW_Mp$=ZiPqxeyL zCs)Hqz_`xr?>}eJNFJ_wLcA7|nzu{--KXL4`CVwf&m*UcE1U86X8iE%<C5WKR5lLP zs}`)rNTxd8dpy8+t$D~cJ5A*R5g@!T$~wcJruaQq$V9;J(|Tv{1!+C3v51e7UyJ=P z${3|pks<x(%T}m!ultY4nvncIeC|YGo`*I|uQ@uBtPk=q&}O?OyM@RSIoa?VSQl*a zH1606Jn2v1D$yf<!bU+c_~^ea?}ArU@dQd{w}M4SSSh^7;%w$c@iij;%#X5B&hKA! zP0n82ue|BrYf9A9V^_9x{}I`)#4ZPKJq>9qDS_vK+yZ4!h`V?VwEHY({D<I-H{yB9 z72~IIeEP&{nDMc23ekM=LF>0mi;h>N<Hx~#*Y<5!JUQzvQY2Ds3t`QI;hzV`v}pXz zuu|WQd5|_5iB9Xz%uY@F1KV9RQoUm9VmumBw~jQk*0SmAUFY-g%wnl&_IWm~Al_>{ zy`$hlstvTi*(=7nb8*8r4qk=2^xu-@Kut6;HF80yA;p{Yb9=0aXSWeG>bgyf{kQm= z<*7gE>Ty4al&mY+RwGer?cA;!S*hQKR`l3w`!Uzga%?1etlQJ`e)^T8x`b#candnY zPnw>!tM{B&FUNoQ`i&Dgxqg5Wev0)2r?t`UT*Z-Swnfb<o+etqx+Af@$!6G&zwA!( zlP~{_veelL&alf26FM0Dbh0#S_j4sjqSZe0)%~cB17s0mL0CVg1SJRPV)2`Rl+l0W zbN*bq&+9d(`x39byzUcbmQ|fAMxTgLsGUbGsvsjf=3dx*NYC^R%&i~!TV(k1xEenf z<9$L4KW{dW^UQL;kxjdPzZuh$6;2N5aUuw354e>a127x%itmuMHWKYMnvoy2^~#dP z#=7jq`qX~d55w2`NvyNIud;1MqD;63n|`EG)%Zj6tr^}7%)1>A_6l<i*VwuNZNo!c zGe2Ti!d2tVyS)~zL|>H;s^6iL5FW`|Mu_%%;g8eYj7VjTK-zW07se{l{buK2Jx8P= zamHwoLuy&3GI=cT+`AEt@CeVuzI|BMT2+wB+QLhU-`%-e_CsSKQk9vRcZz)BvHv07 zfk*z$#p}U6Zx$P>mIUUaalAF}R$h!+UJ-$ptQyPfrD_eYoIMojQ$@!ycKaPi;yT9O z>T6{!WG>n$e8EWVS8&eP7=AZKW*zM66M6{<+mKU?_oK~>Js<mZcmEaU+Bu`+P?S3N zY2Y=gSTpnUe9&`PKCETRDDfCp$l7&2GXU#C8g_RDH>7uTq`hEG3pU7nC1<dYG*anZ z?OE!=sbA_-Jpvy{#|pz!&8Kdqs!md0jGxBdSLf1qf?BdB+;fnu34985uO3Dv3mD$a z?98kHQndL|*>!cL6<kXP24d{sLcc@OgiMez=z~J^qiog7F;=ehsb^y?tnv0DTLDSN zEaK-`tz{c&)Yg9FR$vDZw|TEbnETJD^&fdy$RlF)FJeZ|MrM^Vsj?TM{1<0q*5P&i z$BGEm^`|8@-@VY$SY6)?Gd63n<N+iL(yafyStFSTl+&T^8pLnT4YbB-3y!zOwgT0U z?rzCocs9%`r>}OjnZy5zygsv^wcLA0xJR0hPyf-R_Y!*r47L-$sp7p@WHB1>k0I^w zF5o{{MsMhUMBWuLkpJc%%(|<1Rr#!*56C4&IH+@Kqx)bZX$&J4Ww$sF44x;iu*N#; zbEf47#HZn$Q|%n*Q1_=*8b#=5gt@mCv9Dqk_fXM*&w?s``XSLPDJ8l3uBf9JxYIcm zBhZ#wsJ4vkG3w6?);x1_&WwXa$$b2#;r?m#OFVDPG{U@FYaPZ@@`J%s<Lu4UXX{o( z(qt44%5Gi9wF<}K68Fz?Y@qjUtUF&_4r`g7j`To!H#n3|ZR!*CN$f{*1>{HnDD)C} z$VeA@Wz$=!eJBo`oqo`d_yFkM$T<mfov-L3C5_nn0Ibo}J#V}CsM@|9hgB239i2ba zbL>Tl^!d|#b!&1}RvQwCcmf&M+xt6}vqqR7`drX~hSLyqs>EDxKR$u)QUy8Ba)vZJ z+2K;BAh<82PLyEY>uf+~r`Dl(4(PIcHRL279ac@5HK#dg27drmEc77pXgHaJ3UZyy z&{nxH8f#GHB(P?Z+{`xpR^BdA8oI3#g{AA;i@1(__uRiYuqk`btTd)<$lhbIcAVy? zYYw+!{>YkWy-B^tY|XbmJ6+mZ>rcO7bHrQGP2!#CCSlJ<Z%R@ZT8nGs8l^Geo3T&G zpC5r^urOrvksGjTk@lTYcXnc?uEwfw#R&Pq;<^_07nyqV-BC{_LDfkPX@&gaH#S%+ zLESfrd2+2;|1qWC5XrcV{2!v*it|1wGv;bBG%cEUujnlIZ#%o+-_0F?>G|qd_}PM_ zzYV>ue!l&wP0ymJHG<QKK@zT;)5#^@#a!T@eioV-9V%}%zG`=y!72lZfK8-tx68il zPpdWLnHViAi#@+Ax$IQ*xt5S~NWP6%=sBV61-*JduF{p4evf19p0q2WM^$wFXW9BP z>snrmIRl*{x#>e7366I}JmXw!GC^(GAN8KL>vo+(+FPcj?p>As{Z~i&bOipbyCIDt z{p<cmk`W&r_&!u2?8+A`2u^4kO)AjW$LJ%a!rhQ><f@SQPX~0YNi4wAc1X-FmpUI# z-ILWbmUW$4C**Z|RK{_8Az!gz@u;FN$Oiv@Mmnr^kym`~jeR*%=N$LmUs!;qGv%L8 z9?7h$-yWb<aFJ|A@?x>{x8r|S=Hr4IIH3WF#u;OWozkGQ4}H1;>q9)-aegdGeBW54 zb$0~TEwv&z%=ONSnQq2+>ikUky}>w^-=H}@-@cswbD#RKt`d@uyZ`7?FEY=W!Q>gA zn`wAkmKfcoIRgWq4L%UMR!?{E?*p@-X^D1|IRt85eJDC2Ul6BY2$}ngRro~SA^5~6 z*}^BaUOQ9tIefVj@5d9&*{Yi%6LpFOQTEM!o+a;jGyXRv{Z}GwN>+k-2hpAjdPf<f zdmS-8#}3I-!v9Cz7CmLD;ZiM$B4po`ToHASS7-8X<1V-WJykzyZ=fVO)*AiMbpi^% zkwLAs<~~On(K0?+9SpOM@+i!<dcucro3n8GQ<%E5-l2QJ!P-}kf|Gr=#JPh!lHW&P zo<Byf9-U!!Cwljfvv1ucNt^@<Ki#hFzc#gIo!hhbLlU7uuZJ|E-!?hh>TIYpj?_8k zhmchCrk|IM+9i^Z>4CMkTxTQWE%#Zy=vW@;L8{lR`~MzSPQE{sGoL5fw7a7}eYJi~ z{dLst_~YV(=v_7D-l%o*>Gwwem8o^}n0q62?&<ah_7<7!qwbFE#e}3i{_dc%@RNh{ zFUQgy*`o=XUfumc-K{0_n0U{<nNEwX@Fzo|vSN<HVal3eN2xlo)ib@b!m=Y2v#~A% z!Y6t3J>iWkvzOEQU!G{?bh2A!J&m?<H9}aoa;^s<R!-!e-X0(|aFinE*fT^Jh}iE0 z2P^|!KM4$8+c5QW*)uvlhI~JIM1sgT-AU1>Jl9M2@+vj?DHZIMIxOFy_jqe9e<nQs zb7NIR*SmwhoA+ZjIa7u+#>gQd4tFljjHVZvPVJ%x1+g6RNS?<^%y|ydW(4yx$9xXH z1M(4+mB5wOW~{qEolftI;}uU@ca~wh3$Diav5wW<oQzVsE}Y)inP(H(*NFvyF9z;f z^>x-=qRzw|>r|}G@+{9|)c^OxuGEToSI|9{UJ=yEaJJWlSU*mjdASwCmeJ^SvXb&h z^5h@cG3*MwO1UfA$_bs*%^B)nmUGBIif5aFT|NvS<&EH;JJFkSGoIaC{8Lm|+=^Fj z#?IycJ0(JTHa>e=ThX818XFuf1^SOSJ?ZGj<4A$t9=E!C)9Ivue55|%v)%7l`$RVG z$6myHPOhB%VjmU>C)xJ9BGn#;)FabnJG4u!LDKFg8&1;Ao>9D@K21?}zcRCI_mk_D zJH{O3jGC?Z9?qW;m&q61_smfCc&(?;#B33P0S`Wl=Q`y{T41;ATh;p`iI*{R(>|!2 zh4`@KJfK5dZOq9t?W*Yn!)45sy{!FLu0{aDnmUd8+(8@!6f<{1^*A)tsK9j{oPowZ zK>wmo98=<S?7NY(!AgA*c?`>t<me}2^JG9wAJY1{BXk~`PKcy;7@lIH5Yruz*1jvR zgjLdK`f<?^hiQvxR@#NgN+V|=BTi&~LLae1br&ZO6kS;($h$?yejay-r>Rcm{@Md5 zI)xzf>^`9z&L3p|uV#SOJ(V)rH;2lcnbv!}wQhekbO(89DP3Eh$c_-bH5~QhbEDjf zt4Kn{@Onq#*()C9ydFMoOum)uzuiZ5a}oLeG}qd>#j~yhK3W!K#?naAr`F=e9V1Jh zR@)v2xpIakG0eLm1-9Zj$O$>D4As5RX3MZGz%K54KZonkYDjoz)l1IvIoLhOb|Rmd z9pTei@gSsjo!>D>`Pv*2r)!WRZ!LQ5PhqXA%|+v)S7~ZXF)W~ypx4#aSdU&;?_EW( zeOFIBUC%|L)#D@B{xsAYUI@1Tm}-4KuQhH)Todoc?ZD6<g!cnq$a>#Li(LK^l4pu$ z`_r80;5cZu|9ET7empeWf6TScZh0cnZ2wW#nmR{05}HN!9i^L(i)L3P{kVu0x@(R7 zQ^=+{blaN;L1wAhj7!#|+y3J{xou5O6}Xm~EGn?B2SUUP^HcaQ$lrrg@X&y9skLgO zGx$tX^PUdfeiy!!-N@tK2+tvrj-3+CWZmTH>`!5>$IV3}qg(QDlkZQ4ZcpNyU0u0V zblZRRS`B|1blabXTH_1d_8(KN-{&>RSK%MNwfHPB?Vb30<E7DUUtcY<F44kq&~5+m z)>{5}=(aasflX3&C2o8XR}<a#A7!nnbChGDTVfBM%X!^=Ty(oC=|@Jl?!tv<XI<>* zWU^@v-S*zyWF>iZUj=DI+&jm6JZVH8ACcy(5qBd?j##8JS%}N4zMSg$<>IUG-*T=P zc}R~+w62Xq%Fm@JB)LcAu;9C;pBr)=bW7g?y`s20`zJN;{0=(Gce@waP*kz+#wXV` zimeB?Kb^HUe-$w9#YPvO4CB`8u-<pOZsk@nZvWM5_55itZf_d0{}(b_7`OkJYArvH zac`HC)Ncg7r8)(a`$=Ra{PRotar;xA$l*A;rT=(q8~xSLE$;m#l#&>-MY{cGw$|D? z$`<MNALUVc`nX7Uozy=J@Ajv@*4{szoSH+u{b@a!4c>pet!_R}#zNmrB<zZ`!B2;J z=`x8gw?(;^1I1IVaWB4s=jvL4uliQp`#AbC|L?z~!j>*!yq^ra7RBd(!t<&;Cl>=e zs0<Bi2|)E&3sY~kJC{l3`g`bcvK1MPRQmole!h>)P5K|`TK0EmT{uCSZdU3uO;)lp zNjS;sVaaa&D6afI?ocHz`L3%EMvn!8wLxtFebex@E0Y9kgdF0jHB$FFLo4eHNzJrt z1L)pBCjy-nM^}aWK}}oHF~U03`g&es9VerTH6x!hyDp4CTWy!$FZ+OQ(&8rP{1UUF z&YVu=L{~VUTs>R<5WIIk9?S5Yx<k+^2jvy*giD2&^qZZaP7GwVyKi2dU&|h^_4@n@ zd>Xk4RB3z~nF%`W;$&WvvoVTktwwLJ2^C}Mg|MZ&J|@_IytQsW9<p`K4>eoYg2y;D zR=o8=>FM%)@W-v-EqVb#dGgZqnRrY75_k)Vjg-Aq<g0#L%EHA|GQnG^qfethwkCR` zKRvY$H_wb50j&F?q3e#9-?kAliJlYR7mw9eXb~#Q=!dL+z&dN0z85;pNuD?L<&&gZ z^^NpiySf`2GjST<NPik?Yh1n&>Jh0UBb$|I2zt+*t52gpw8w=-@UW^I8y!i&BGU>* ze7Us-S1xzk&7Uqe%=Xve3n6b6u6Y#PMQ<ri%}HAli&xof){gyWyw>6ENb4w+YAbum z*|zUmj<U7QuNQeO)J-KXeZO9YQ|R|a)(5{;BTa1!-EvgL+g9?xDXDQ!qYXBSS6^In zH=bwr4xggBx1ul5P(3NGb@n{A0#)4!Z{e-T`>eY@kqJs2?8&QO`>%6q{p0uy`;WKQ z>c>S^eL1V{>2|ukq*{35WUtbWs{6*Ri|D@Wj#{-<dUGhJcb>#n=|A2Y6C7_xsR!XZ zfnqKOF2HiY;=-qLGyE3MqhrUvExwBLy0B921eW;4>;DnFyDYEr%D)%P`f<6_)=O;> z<6|Ko&WMIC9v~WQWcp0FP6x{-b^hu0)`QSaPXd=6t)WJu`e;AE??OY-p&|RPonA|g zM0w(p<LIlAMqcBKS8tysPB`5@Lx;VZd#y$s^SF@yDF1Wrx3;^Ty(sHFZ{zH@wujyE z_8WOhoI%N%O4vr~?fLWTH7v4LuhpIFPPgAUhno%vJIBy$Bhg)>k@?+*XZwS&wWzzJ z0*~H_r`K&G(Vkf5IJ#}5k=J<SczccL8QB#0z=+Y&3m<%U+LH+sm!rG6<8nk%RN<}e zCB#yQlFHwWcilMsbURE|*^}^-aYikERe3tVlbo43^>Fm3xJDrJd+UqXQFp@2K?g7S zI6#pfMO5o3-^QvX)}P+QEXUbT{l{A)jpOYid<$qR?I9xFbiw}VG?vaGBz~lBSn@67 zXP#=Ty8GSf_7h%bb`bmLyV%D>E;!Ag%|{rC;yTkXJ-K+s)89POcx%r@j<@wZBa7*$ zem~ZjPKwy}lFPS?_ld5O*!3UA%CJ^#KP6l9{FOzoE{gCGoi}aK^Vwu?<27irw~4M> zF57Fwxs~7U`@WE}c)>PHlp^_M^MGH@#p|3bHJ@EU=0VcVTIoc=w!_p&t9CL}Fw)3R zjtam7JHZ=xm5^z4FjL=`o3ZZy5-}+JNVnqoqu_{#NA!l}bX2%YXP$tvsRx7ah<k|p zz}-IWgnXozLj@mAq*Z@<YMpQUZR9BU^;m=4|HqAjpR`BeM~l^{cmK6&_5W$2-o0sP zJL4(pjYh$qravz_0pzVdou9=kyG2?*EN3pV$A5?)&R?8+NTZ-jKt22hnFy1hrD`8B z-zcQdnP<sS-UCw|KwlPV0`656d;gKw8apv8IgqOPUKf#9-@(59M(Gn->vA$V7&V$1 z)UX>k;z{V@vw<?e6#PdQFJ*Y@%x|C7`R3yF(D!e~y>t4TwR09i|23=ib*|ZZpIQGA zw|e@xmPhYhotoOUNByN=t!-NglNLe$QPvtZN7>o|_({l7;#^5}R44cKr?4#3B0!$Y zP9O_~o+Wen-<;=U`8{u09=A>e#7O2FIdhy_w-=e?>(7+zd-5LID>M3E<`kAuRuYQl zH1T28xXMApS0z7N>kHTkexb$~?;&|j==`n!0X*tBH2ez(Ls_e-m0$ThMuSGHvn@A^ z-NF@}F|B96jsI?k=j~Sb-fl)LX|rT-b7iw!Q6~4trEXC@Wk;gD)$-~m&gp>Tja0gs zQ;<iRzgGWRN^M3~!t<C#JRi*IUSOp+4!8##q;naFf!r$b5P5HnghryU*45Z_RJx!` z9>#BYpHnd481>Be44e<DclTdGe+t!(L|3iv!MANc{j&wNa@skol~gH@i;f3>37Y>J z{n%>>G2;5whykx0UB8q)p7M-LV*G*FbW={vTAz`$QQ`{LZtncNaYozr#cOeptksdm zTI>0GX1xb|axgMYSS(M67>SNrtEV?(D<m^Nbn&|u(#&zoCnbV`C94y=RTarT;RFI` zuj_V%9(3ve(Mz2%!d0JMMK6=K8j>o>)V6b6(AVZ?e6{_1yc!njFu#c(;y%n!9aDWT z{>S#0zwWIfNzF0B7i3Ug45=euG5#gRr>Ia>Um3hgoTpBVRx2~-U6LiDb6`~GX%7;S zWa>Cs7e~HaIR(YF{yvS@4i7+Io=W{JE~nan6T|S4bG8OHtLqP5mdlmbsWYe5q0)1j zc$!!dHXlf>|5#G{rM3Jb##h_)z2_@+S&p%_=zGs2t1CNRJVyQp`59z>;A_B^gEz<k zIeBHad;BY6EgsYPP4F1sq)4MPKy-GL#zWQnv-nOtlGErQ??NJhcOHZ_2D*6=ryfc6 z^q*5{s4;e}d$_S{sdZybc4F??&F{oBB5*pvfk^*p^rW;UYpGKnkxzJyR`n#Zi`50I zs`7Cw{zC&}dF%VP3tm-pnI2@I5#Nz9vZwnx2kjwiz3xHqcJv`IPsl#$Pr3AwP~qLc zC-0QKMKl$UyiZBHz4&jDL-%p1XIh5Ofh_%dh12J?qxGZwcd9IACD6X=eSm%>B123y z^&{7`&pfwtzHr-tSW4QD^%c(IdJ!D7-NX)bN5&GgCy5Oa;pK$Ut@ulgfDqd0PKQc_ zCOp9Bt7;B<ox7R33ryJ3OC>H6?OEZZ8r`V+Qm<K}pm&jl#I5NMjh~%;^GVPThNLr{ z&g|q9nJcO^srqdn8j)h(ikWd@7gc~>tvnqS%H+w)9&M^0p5u5>)ORbg5R`zNW!KZ4 z52<d<aPsO_Gy)MmY8KhcjGU;we{+S`shal4tpnGMoNN*8bItps{eB<Y`_jBO1+0QN zr<O4FsB6o63~oodGiGFd@12KE*ZkFU1~=qNOJ*cS0>>%ttNHBD1GevK8tQcy1@)_B z%smMUimsLCV$ZGPa(kBguaj*=N8{@;*R-;lKNjA?3c=4$*A>=?jy{S<Vdd?`3S)UK z;{;mu6y1p{PeM-3%SGf98ELAZM}}ipgCvMTA$z8FH<C@fl`&mw{;inz<>LMFDa-KD zz7fx+QH?3b`5c(DF^;dpLx}%_J=C90YioRBt^JO#?{RP#E3|q}sAKe?EM`5|6urF~ z$;Xx-gJSDzC_WP-<&mSG>Ix7_{c6jvk|N|!V$I-}ASOjss4xiikVLb#;|JYMg(R5` z^F61Gxs=_m`hB#W(C?*vp5>EUUC0^IQ*K>1W=TJ!3ZD2kgLB_3@72D;F5`6Fi$M`* zZ4zVCSrw=2c_cI?tqy9JKF7ZRnwp*|3We6{tc~W{aW%9gyB$=B=bgNJc0AmduSs5h z6jdUhMpW(NxR;)vWVLgK6M5~#+=#Gg?bw0%_wL84aZ)yYj2YMIEEnigrc&0l3O{C- z4)Ai~$GVdnvPKpQ-Z64wh#hRk^KXV3ZR-F2GiUt|ulzbJvt`7_tPQ0L>P|UWJ<> zU0~VYzOH^|^w*)YoMjj%6Jl9%l|FR8K9FO5`NqgWJ4HT?r@<}en$>eccnxdpS<KQ8 z!QpSj^C_PhHQ?z6-Q(|uPV8J+^fzMfDTD8mkas`CCvL<}!>U2<uRh>)`)fF%9&al# zKs+`2jr^M0k;n*Snvo`-aXChCH-6LMPiR11UMzmu_(Vy`Ig`FxHx_pn&pnE*L9Z4p z4&+oTU)xS>Mwr^0<Sa0&yD{@fp(pYE$ffK_*ncLa<C)3c@*PXvn(9oMFG=+C1<yIp zU$q93<QMiOU+?@JybALp$12yEpBMLez*>q3DQFc9g|<B#&%gszQq+E^v->pmU!7X} z+Rr5~C^Y^MqjtwAq(^Gq^YJR4(!JvIScg5><6r>GnBMfZJ=hMX_eGJH>nLvV{*=z% z5&$`FS=xIa;l0g$G~GMo>D4>qF#8tGJ+~g_MQnXxy#6%Tx_X{wa0_@>_Q&JUyF?&T zi}a_#Ry=rPo`%OE1?V3~mN)fSU;<Tct;)R3Vg-+~KC<>l(2#X6wlgt@LY-(2&!_Q+ z&Q@vVusOcJ#HsbX{XVAV{rxO3<Nyz0cd+Pg@DJKUJuX35iMadIR3m^o&qZ{NGxyTs z;^w<CpLpj%&%_w$H;Z-qvb~$+Q3KE8R|C&u;nv+K+qe+Eyp;QMl_8r&ZhW_I<zsWn zdJ~^x8Pg>@u?60X*F$E$8Q+`F@vX_z#5tRz&@TOp<m3U*Cmkp8I8Bj7Z_iWR|4dQo z-rnY`;X^W?At@DY6aJ<fC3;p`7OcU4#J5_UQTzBn8Q95f49t5SOO%fF#9Hqc>(qUm zKaO{(Qh_XkKgRbQT|ez8nEG1CUq%J1_7>kG%QUkZ>W*lZvNhGeiFdH?Mw12UU3Zn( zxj+iw1|p!?_PIaK@8{LltKvK{?e_Za)!hW`<cl$Xcxb6OCT7h1{@ikq6`RVz+T(5y z1+=f{PB0XROR;aXBzctPZDI-LM`E(XONhYYzomX(UYpZJ!_%9oD2bx~)a}S$BI?qc zN!EdP-@3@R_M-eX&dI3nRp$G2$7vrX)%t%fw_u#PNW9>^IX~Xfc4zGckf!$T%w3rp zx2@sC*C8q&2A|?x#3GPa`$cdgzC*I-$Q|E{TzF-Ajx_^qA2jb#{+?a@x$HY=2A3@N z{Z@*k$n*MUTt%zkKgQcrODFr3i3jO*tiBO3OWRS+bCBylm9yS;*J5qysz!b;u@uh9 zxD>RW{sbBKa{y@~%OrzT0j?aKHlk8@Q~P5?e*UTS4x?&@PR@UhkxXR^TD8qX7Inf7 zNSf(8xR$cWwD-n7<XBqzPDc!lSdq1)t*MkH-k*Zj>)$i8i_=U!o0i|X=Bix+*N-N< zYJAa3Z?YulU-m=rLGI*b>`*X;GVhN@RO4{Fum<zrpKn)n{WK>eXM8F<=Om1~Q;f%7 z>(K!Sbt^RDZs@d!C4;l(v*Tm-Q8>(9&fu_nAzRTu#P-NX!k?nPCLe{C2i1Vl!8U0A zj|xhdk3tG9gRFH%1H6lsM)XmgvWQDe?S|`dx1~{fUlp4nLtQx$${)BtqvPZgA^V>3 z?}Tn9woAsT@;gpPh4MS3p=Ga<g|E|xl!x2uW~z5gg*_o>i*2I_8a$Hwr1k*8QJ_h4 z5mv<eft*I6D>bj_N;;<d-TaLmbtP5+8x6F?Z)N|U&RWxI@LQEjIw1y+vQE&RT5EKB zV>RG!@|d|3T#FTn=G}_dPLJDk@*li`S5Uc4a5$q`?fgIvK<Zmg>7^s3`cZC{n&)-s zt;J%{h|gHjJaY9s+r4!}-EB-BZ+0trC3HoC@9)Q7{u8#WvsfKjslDO7arX7#5bx!W z0%w02*!u95(%K}3V&%M2FXFkP!}ZmA{d!kgxK|mwrFS%rUM-&c)CS5wIB5)ZYAJZX z^ro@yE;di&=rL3GA{zmrQoU@BsrMW<;gkc$um$UWVji(_uYXl6*_0!)-<>JcTTbAA zwN~w|bLf)eRd@826(47=Y^^GK)PL>LrUU`eeT2#;P!Z?By29!7RnbCc<U6W1i`+sG zv(M;EU;4WT8E5kQ6CZaRYpy;{ySD$RGy2?jH5DZj_lx&k^Q-?fU;W1@yKV&jXU3!@ z&{$Z9_)_uTVh>Q`AY1V?wE*tROU8hzBls>VD^-bu4P0m4G8WlX*ww2wz0QVdyC$hx zh1b-JOT8l;Kl9bM!zut}%320_le@T8uAx=tD}S9ID31*LjH*peO2@~IMI(Q}=jC%% zpL8caZ8xlQY(YBE*^gfTO@Dy8QMmq*{AhA3=thA*K$+93f8>g^%#X!-qiY`03CzZ* zs3?`!{WKZUS}W&l<8$W<acE=}nb;Z)IUS6Q(OA!TPQ7Z(19Pps*Qfg#d7N^Ib&AKD zzjq6zSerlP>`|{P4qKf)>m5Z_%^4oGD#=r#_FZY)S?hR{Y8WEE593_mQN}EPC~~C# zPO+_2&yzIi&FHa*mqD}Edl#|WrLVkOG)l`S{sX<?X`8P*w2abOz3jWJI2?sW`!O9; zdF?<pK>LqF$TP5+akIzyG$io*A<y#!7*>J)^nZ$My3Nv)?@sC2C=Jn{n`)orD(|bJ zi7Mj5YKAfc8H}nEzpjUN!H108mdvJeA=>R$MD+Ph#iM$tJdgYSC9c&EG#>tQG#bBE z3Fz8D<(A+vY&9P5@S2cM%=ppa(z?fAoz1BCx)CdOC-(iH%O{HG(4BZ8iCN!^zwgHX z`s|m@l~lcvIvl8n23cKX!YgA^l)AS8c}mu%_>!$rS8KJjqemLIwJPI2EytatN^K<C zt)<<cy8r%99ZZ%Y7>@Xhs_DsuWA74a!2b-FEu$;UKLQDZCirjuq1~&@Fn8@hC+VyW z@M^}dY|X;c*1}m)4>qLcD{JVi;fNVn$F1AhL?)(^ce(i2c;D*v)jf~?1fBGs8Rp1x z%`^U5tjs#P>EZKv$z;)qcu2EbF^l-%Z${skPeZ=Bzd&yugey$jnf+X;>3S=FjL7jf z4KFBamX$D?kG30NfBIH&!pm{>p9+qsS9T0E;cj0@_Vp`izakM$>``*?iR+<B>EZM8 z`L^g%S*GefrED;)$U3U%Go#7!O>gW-qe=~L1ham}zl@|~_gU7BM1LX$%RJfM=ptcK zG!mIfpl-5-=?FG|$`>>$qDmz;+5K$|JQ#LaDvQW`67D5)^J)Btu6r8af~~}NP`|DI zC46UHe>BqUCDy2G@p5+Xc)240e3kwINB8<mPG?NHn<07m^acQfGuLFYBQZ|rZ4@#Q zO2HGxC*w)W>;qXJ_F&;FlBUATLhN02B8g4VM|1W4SVBEV?ml9m8LAw}Ga&Ppd=B*h zWEMXR9#AC}{>|m$tDujH6f&0RP3~Rjze0ILE1*r57%>avEd7+2OLwA4Y3u%AiSg39 zH=gqz-77ng*oJbK?7?EUvJ$e&`ct&3;SWP+w~Ghh%fMo{%6Sg@UkI)4J7R=3N|hQp zKefN0%^ao9ZW%nK9$Sy2<_^iI6-0U}gJmQ5Bv*B#kvq;SokMZ`*Vvu~$)f(_5jtQ; z_m<Oijg(w8PFda2TGLg}*v+s^=sCI>(uV!;Sv=#^6Rrx?(t(YRrS}7;Db7Upne0+} z%;4eq{k}ZjDS6A5Pt(7$G?i7UE;C4d#aNY(i0o1Z91=}&3(kEPb!UQetuZ&F-z7Ya zJ)*j+x}Qt`F{fSMH!D@uW}3gu&{?08YVWlC()kW@Ix~*95jshEo<ea*j`Va9FK1PW zbD@D)(;6edEg(tOa{YO=(r(UM#RIAARrMunqg*~Ol#WEU)N|~0&Xu$DjO1He6<<}~ z(c2cEAN^6;RK4Rk*mCe1QjxAy)QOV4yj5ffCy~GjFYBunPbf-_BvKBoB8l*wBuFA2 z_JDSPqP$oS*bUe!SioRLo~s59pEz}Iho4%E#ls#T-v0do_xFyOx+52oQW1H@xQR$f z1Kf`>Q%RlC^m@n7Ss^2>qb>5EdmX{&WJK%aZE}n5g-nwaQ~#8`kYQl-qpHRw#cE4O zQjDlKz0!z%V?&XHuLrSuY#{HW{yb&<YjjcbR%TidnPE53S00;&=+JzJMq=P#)47K* zf_AtpLq%icv$lPx`O>|bFI%ea$KpJqdaTk={pV9wEHbk9ShBm8d^5KTj@t=tCpw5H zhW==1YjuoeHnA|C$KU@mUUjF%{&ZMxnn&*+NWgQUiLj%Q?woF0)1cF9-YC~>?e(W6 ztyz3Rc@73=vW>wt)~Di{Ps5j|&Oq1#--T|$FT-<XMS|0@O<lwIG+w7?KG)>$z)q!C zEY`%ccz(XbsK?<h+n(kw^{BmFA~~Og-6XEksd1a(t6}%-6bb&XCEDftZ^ykKg^jiD zeo52*9B4f|m8Rox;5hmb51!Dab^}#<ij*bClgsc$M2)_T)lZ(k5plpTCc9+H`B*(< zEfN=|nuk8G=+&3a!BbVfe1+f*@|#yP80oew+RXXnQGOfppDvkGSt{-w$6JOMK%;jD zoA#V@ce6@)MK2a~1?U0!C5$Hw0oDgA6M2vZq|fHF(iy_mFZr@P*DE`C<$9$I9(}#Q z-0ga~rwLsi>htJo9rNn1ne~0HS)#7-*UVVpusxRaAQQF6geXtG!}?|=XE(2TY}VTY zLx+6!kRx_|GvJAGF&a=SXD;BKL7Q;~!%jSxO?^9_Q(=vqb#=Z@>U<v8kzaJ_No!Fy zwQ>{XN0v>Eb*K!*IX|-dUP+qsO<VDq{C89>f}@SXs+<x0*LWvB6~({$Q)VswV~pu+ z%;a`FbjGo(D|8L7?rP?hGO`Yf1i(+K;=dM%06U+$E4(D+jWCbr0^8gTefVuWzZ1{a z=caibwTe0iOa2jjdCE~!-X*mbvh>rxO9j4kglT=WLg}NDDe!W1ayA}kA>zs4H-E*g zFYCP&tvanODdsdAxYxd*jDKXOD^tuleNTdK<-?q=bNlMyEB-}zJ*TIY=UVsX>+El3 z%Abba$hinpntgqq+BUN==|k!Wv5{|ybOK+?YX#z<n+1JBh;QNbgR8l+`VcQG5--2B zB$Cb*K`xO+tsLUy<?MoG`gUU+oS;G;&6LLawUg1=e;thxMCZMr5RVe|U&NzbNr9wq zsjlzb3|_78oS%bS-TqYDYhbE5X@E|9QyP8!D2kA}mxDu*OPu4W$~O4*Wio`(m1K}0 zdE6TqzQsE&>08Spdj?FCGFIT)DOLH(I=aXMK2D}=uIWfp*)ey|1QJ8NGN&_<uguTH zR6a2;_zT9C&GveTe&T5CX8T&(Inb+{2d~c0L#}iGz1t!xMF{avZWKDfj8h8j^&z(Y zEFQaSQHZfre=1unRa42y2KMQ$r?kFn-I|J<*JqiGv+C|8b|!E=IJ%w>v_GC9{ysfq z?c4j-&51c+9C?<#%T{T}(!F2yHlBPa#OnoZwk~p}l;3(kWS6}Cx|@5~Nwi#l^>Cp3 zlp?NlC>7?u5#K9&?RMB0)P94K=!vq5#kf-27K$QbN$5mLJfGyDyLyd`5oH=>=d<Y? z$lte)X1%&@tzRYnZ*f|#swh;}k1`$(pNq}1I=WMKV{cjKK5A4(oW?Trj_prJi@>x- zyRko}R#E-RI^G<IsuoSvV<$(Iz5mUu%n{{eC+nVdl)g&4aEh#mU1NJr_nfc4Jk5A= zI8pR!NNuWdh(K<I#C-W&E&Mxp{m9=#%2FY$>O<wI%fiT9Eq8EB9ZdcKl75wXT~Gbd ze{W9l)RPiRdNi|k`O5t2O>Kfvc4~HfvyRM4jOhyHEAup-#P5iQhHCcf@!K`vX#aCz zK`O$f{lAPT>$Bh(_QpIq5H_&Kk*W##YN$G)hmQHOtvzv{xa7;EZll!Wf(xfsusz4B zQ=w{CcdeTbuktv!FniLiuJ=Z<a+v4!E1%if>u5fXwaYp3NCwV1y&kfO9<0hQ`(w=L zX=<aj{*p`NC*%J>E~!GAy!84^5PTt1Y=rdD32>{_`;~c`r+b?jIGG=$x1@9bym~i) z%kcm_i8cCL@C4pH&P`wr(oO(Lavvuq*Z0lORLb^|cEl8cVIP5Yp^Ny{w<}by-Z4+_ z9A~Vvn=C8(^FoW=n2EhuaV$2XcP$4@U!9+aG1tAtWmI304Kt-rSE1{ul^cntTYr~n zOMl*UC;N`{>8Xd<X>2RwfWtkWBh6Ne^E?;p?PK53+Qo;(VqcB9P(PeH9&1Y1VFSPZ z)8GQI91?|^)~n?&2u=~allT7w1AzL7&0?oekz7|BIf7?v1?ru#By?ozK%ijIdD-As z=Vjki2UyOliy;(~K|v)bS{Pb?@%sN$`WNoTe;<V01%3Q2uHJinH-7)$uP>vr_-_R# z;f-_Uf^e`XR>xD}Aay*VdN||n+>7-F#m-g|#b~`3F<*y8@pR8LewQ-7uLgsr7Tb}Z zLSD#5aMbsK>Qy`2uBGoGqcHE8U(t~$ZDW$0K=&+k_0(?3>qk*Eid1G5TU?ej;6b9w zYwAJDJJj!nJJ!*A94n<iAGb*Ce)#I)Vq(tJd+n6xd+}__%iKray6@vT_pO@^%cTAk zx0p;Z2llP1`Zj`YVi!|-+0pD=-Q}3Y_|t&XsW$LIHQMs39Bx@&xDTa-mb&)go? z)zPUThoZ(wrsi;a*>{akU5kV0)ZFel_imoE4=hc_(It4S>(x>}6fiB`rj4Mk_Wn^% zJf#-B3dZIBJX=V9K<;NnkFpP``oOzJ--WGs510cKcG^xciiFzph0hDDrz%wXFSOk} z@rAXxNL>e~(QjX!=h1a&wzuZUPNl-Jbdn;f-0sJAReewEyBY`GWlvJmL=V>KdO3$K z$34=%YY|LV*ssHIdB;&0Zpw+rL3E?U#n_82(t&QINz0+Wx*5`fOjb+Qk?3eKj7Pjt zMtnSKsK)2~TBIU!iz<Wq)DLpcKP!@xsPN;!vGZ9XZJvlMVe(BBqr|?ZDh?aFjs>t5 zEi&OdsCV6sy$0R{bE|)c>W-;?U8Ssjhx{R~jNu)xmORBnP-{%0wo^Mp*XHR;UZryx z9iEBzp@BF9QLB5p{%Fqs$qq7(@yzu{qw=7|GIX(C?+4}8<M=?m6MO4D>J!^_f;zaC zs%3bx<y6sEzdpZyQ|USmy)A~(YO*_5<Cdb;ug%k$d^(QSbpKRG<M8q!d5}xki0z6_ zU!A9Ox}L|;mLttb>kBf?dm*8jm#N-deVti33ZM7i%Pm?;|IKv8?bn%KYsX*4&(TFX zw>T(i-Uw6xhM!8Xykqm=j&<`ej?`*VQqqu`Xx$p8Hkzk$y0cC5NV~ViS2gv>G$KCV zuShlX`2Tz{Hg}Ir`EFXVR&|#5dT#I?^W5OQ|Ek0rvwN*<+?qGg>FwF(>t|*4-oxkT zFxmKO=|*y?Y6N)r3?7HW{xi>Ii!P6vOX}En0)MPpg!xWIBU(QG&%>K-d@^T6U5oD( zyLuJ5=Y9XVXK#vnQ%~5cSuYWN$Kky8>gb6nHvT4f=kAJ6;!(tWb^T@N?rjNVk7R2_ zsG75JMXz32N3jv1`d{kQOmZZ^*VF{RT+TKA7$Oh&+30y-KO2#aI_LUIyfQ_>^p_yV zGQGj;bFLnhZWP>|p5ddh;W~8Oe}$)*_{9nWezC@9XpDClhVh#BrZf9Di<8~2Sw5;M z&3;u<e?9%<P}lkv)yIQ;*;X#+^`rJ^|MhCoq%&>WINFpx-_=Ia*7>|g^tokEY4NEk z5}$6DEO+|F5gBOL)_00$+dJ2-_HitX{+!TaH`D1Hob^0_HX_qu9rfP5<9I0O5ntO- z(5kE&^wBgMAYVoQDE7aa2Qk$=ug03UD9crtcf&t3^~2o@-L3v7N3C;zPHugSMD?gz znNpP3$ET=8QaSQOQq-_aC6(z;1jSuPQA=+ce(pwGmMAUfg{W5V%Xog;9%1UPL^M`i zYUqKZiY>)w-B*e3I4xG9PbcRnO{vq>b<}A8y$YC#+}BnbsXyx~y=1toqt{ZF40?LF zQf+xP{Au?BtAp0(d%2T4Y@e(mP8n-ghPm>M_)Rp|IrZePlVQ#$gZeY4p7?rAjrs^F zd)4{%EoFHJc@J5CvnpeSgjdgROoTyiJDu*!Sr%7<e)j~Ut`t3`-gY0xb9f31J1MT8 ziF!q!)nVyc+^PPA<SN%4cawLCaJ1C3kG5lu=IuFjC$Ar`p5nMCUzrye7kOu#-$9h| zVtkuBq@BLLf;mxMg)%K<2dctg$_uT34Ql73JoPK<IQ%3#no}>{i62&xn&Ykb%O3b3 z)|?TLWAeMA7vTPS-P`B&9w5Vn_!W64a6kKtJ>WiD+^Z@JWZ0AoOgFU_e5dk9$Y93C zUF{fG&j_^_^Y8g7=Bj63&nq#DEf#}raz`{Lso$nDqrNNkTS|i7C<N}9@&LWJSMzG1 z*srWxPw(jdRJGWOvCn6o)UO;x)i{<xc1)LDSW~ePv~u#vDkpjdR891(=;))e4@RQ7 z#ak`SRO=r`F|V_}N737xbF;U4uB>g`Rr>tOQJmYKswvvytX(WMWau1Ser<fpR*@8( z$<HcXer0^BRuK_7FLP2w*N>uzv!;+G7XsIiNh?1;Sm$Ls9V?^uazQ=Hs|D}iJJIj9 z_YeAR74=YuN&V8?n&oTjXgogR8%LVDgS)dmpq&a^tScy9<=q#7?)>WEGx4fK@7y<j zItNHqV&`+*z%1nJ%)|H^Wfcp7<LPHJx5|3u@D+X){1sQjqH2-tw1+!gCfCt93X+|6 zqK7NVO<QMi`1Q0kMyGJvc^>bPYT@Uskm;-Q)XjOh5A(<L#z)g0^rG^+$^P`!d78(u zDW@IhJ#KPmvtM^BdwdVsvw6=^l+qaoKN{btey;SakQWha^?p46toS6>SLeu+QhQM7 zCP*hRyokyjpic#v0@K`qYjLfXF{WaDzJTwja|A|OxfUCFw2rQ=TQktZ{o!RPeSX{3 zQcliP&;L}Xn9#+LsKnLckHgQ)ES=uREu^b%av)uwX0D!s`1I=YUCF4iZ-+DEI31_| zh>S%z)f4O_Bys!TTzF0Z|5NchQd_bNj6yDBeJZ#-p<q<i(k=^P)t%@KGLav|yEwsP zS^nolaqiDE@yL7_V?K;gG#_X@DhcK9Cl*K~Y_HJ4GjcldDB_FdPN?Rr5YJLQE9_lG z4>*5Fozk9`S>SF^zGsf}F!c&EI>x-%*Q0r1wCDoS3Eh%R#MU?|j}CD3|D$$V^T$=q z&ARxEd2jQ8_cr59p<9I`N0<X51CmyG0&eg9JMG_|{5I7LxjRQe($l`{8awCSPIE@; zSJokr<J<hbu_Y&IO|>3f6Q2g%@*ht1AM{V}NQ^R$4<oy+%U8M=Yk9Bu`N?-8YI=Cb zu+{sg-NO!B{o_VCofmnySA<h{IC*tDR*SQ8sH{hZ{Z#%jodiY<P_bd<!-8+8{;}&T zDCxW4mbsokdvOZ0UpZ{14wJOWSN->i(UQ68hu|g7D97uy6}%*rJC$_pUCOsR8Vgfh zMt(AN=X3~D{xj?S$KriL!=vYZ@%ldk5Ae<F<G-?9lmn1`S9Hc5nXa~7K!+Lqh1+Vm zAS~Qcr)!6;?a4X{k0d*cytLY6UP&5q`p*3MLiIgI)ju9@*N-$GMqG3A(RNX8d8D0{ z_RhmNXLP^mv<Ln3;16<b$%t5Q-`985HvYPq7zG_oJI~j2%uBxdj^j$b-ZFmLXTGL^ z+Ar)b`Np-vt9=dXcWgHA&}#FJqt<$yT|ezN4|Uj}$^|0|qRhM1yr23`&LXStg#M#; z_egWl`n+n&HYSvTC-YSB>FI3sJEwE9*}U&KGsNk|+u_0CB*sg@neZ-X?X-Q_gbcFl zFesC{DD|nKD{q?>$4Rs`KB%c%7k#Mj$p}PZypdMDMSCyGO1GL#*XDQgT!i5$p5G4q zMV=@5clY8MzG~(j%m>26dx6Jhx%fl;DDO`vQ@7cE?kGjfo9@YYtMN^f<42~SBHyd| zew=hxuc#y)nXEs=XVl#Wr}KbZ)O~H2!TGt#_3kh4Ta?#QY`k|EwZ3O0np&jR(lm$S z>pRpfa`c|N#B%KY5*`%|d%=bHJ?B=;uZ^-&(9mW*eOGq4Ea~)9wzSOObJRW?MXo|~ zn-BF}tk-U-e#VBKdYY!MuA@`lw!=LrePs=lw|=(73G1@z^NyqQ>c_AXpi*e*?~DIh zA_e_tT_^>Q{Z@>PZno^Z?fAJ8&(VwL;<PUE310*+J_-p!EyX{@6><;1iRY^ic~sD^ zKDU|*64w#nQBk!@-La9m5vH*J7@ba}0&nW`cuoY$XB4$p-!3s9difHoBJw5w&$+lC zdB@$3Z!r3|<H}ou%)c<jkAsZH`d)PiM7T!bQ)_MYQ->=b#!CJ+e%^^OGScPZH}Ug9 z#Gr1)?>`4O++KXT_-_%B5+6JY?nQ495qxX^J->>WFPP5r-**RO|M4@&<ol;FcILq7 z)AZq$9%uEC0z%GbVx1Jje{G*acJ$L&Aw?*khRk?>f0w^?ut$5ZighyQ(xQindU1lw zGDbee{>U!if8UoRz30qcfp)%bMs~vI@$jtm9;LM3D03$LH-av9C+pM$bkIGycI~~s z(r2Scck8frPrSBxZ7qJ0rV>Z=tl%RDOBSW~O7GD~qcAf>|A_xm$xhdA{CyzDmyi9* z=cjx|^23+|_d=qEOtD|b1eqggiWb3wo9QUA3|y+}fay-!EBdd-xx%;Xz6Y`I{63H? z`B|zxBXWe*{viI6-GsiU;&d7ReIGOMZQMzml>RN`C&~5~?xlM-=$^VRW=vHj%-J8} z9VgHHRP>aYq7NpR48JH{!l@#`ion-KG?iDGDOr2knf*s&ZRHs>?j6T7fcIJ$>gPnj zBhhOQb7IEB_<Ff`BOa0maP;Mn2%Nolt^Aee|7B~XG6tZ^c;yIOif@D0?J)+$o6GGn zJ`-H8$Eq#zm)MzqU7T-rDbyUbkF}FWS}|LX;AC0evcsQ;OcCN6Nmg4M+t!*&TVha8 z<DrU?bCu+sT3cR0c_*+f$Ku26O)Tx*Ti&`q@F=5^)@IG9tlWxqzYxEP2fZ7A<pZOq z1oB4~wla)A3k}OvWz)Vm*yHSU`M`)S;nO9?Bp(<(C8QTG9!Ly)Uy>MfTtUkJGGqd} zSsCxQOJ?n-i!Vc$-&p)}{C6WF#CSKph`(cuTN-p7@-d!y8WgC$o?Ydb!+Jm6+cDpq ziuhvR7tnuwq=kiB`j5ssl9~LMm{~mG;7n#$QmFqJr31&{QfnxCp=!P)pB3c$Fn0O5 z1HSu9?99KGoRq_NA+eV?_GjLntNwGJI?nq@^vG-YefZw!>_NWo)8L;us>MszX}u|O z=TT{n{-co<`pcL_&ZXHILKf2jN;*XP16)IWN6qW=G8j$}s_Z|r)`LP{?AH+_$mOso zm|Mnz^-R|J<&YJZW9I0>rVe_y<F7hFfqy{^%h1+jsE}a~cAyf+7J;#X@=@qQrjBdM zG*{m(zE|Fcv@YD=a-GgqHP3dDNmGvl(G&R!Bp0@dgj*Lan`&XK_X|N6{kJ%&;9@-A zit(Kb&n}-!O~^7(3bAXlfT%L!%IZVDlNu#mjk|Q_B|YxkJCHeX|1~;LNbgAtUySc2 z&+BS@3!Mz90>C$OF5*CZH}Qr$G2ahk=E=_cZe|=BS&iAS^{9$vG~@;0@4@%Ol{yog z(b&q<4s)#15?8rwROM1pr>o2caT}slzl&(<W)rviG*I2AG3GHeIGqOJdE0bQ*+x@k z_h_`eqsZA;vR#dJk>l2<EgIl&_!^EPYK?d8UeG+>T@k#%jLbd6-+0I1X>qarh}0|) z33m-i?risp96{n`r$@~vl~3~+-uylaR>&@mT6^s{k5V`&*Sn`Y!((l&(p#EkS3|0v zk(`coo((&UdL?IJ;M3g*xr$Wf{95~;si@6+{kraMJ$M`OiR5d5Q;>*SCqC)z#jlHw z#SWK;8u@=M{$ppptfo<B3j0o3yhKm&Q{%y7kGjt(U4HC!wZ$O**@`>gFYlM%aTzfj z?GI=mo}GMlVc&i@JDD%61ZN)fUv*oOcw2=G>;vyVwzMGo^MiHanaK*TmoELse7F@@ zOUJX-ezt7vi>~mEjUpR~FA52r2~-KXMG`%X->Z2@mJ`ZNYV(YG?<nGLrX%^d#;H^v zs6X|&@M?$_W$2__BWht?-=89BP$CZ*FM2K3M)qv~@j1e%5qcJnH|NqEhw09<1FeKL z=9xIz90c2c?xowt7>jL1@4KzACV#bW>GhwfRqa;mwY`W^nscQcdh53A?<QXBJsx*s zgV%an!r2wAwQ;qgbjg{|n3fk%>x<tB{|B8*?gd43H;|9(51}6(hkOO?e-uBz56)12 zEmu|_wQmI<mwYSuj_|GUTVAi$)04f>jK5o2B;EUuGPMs<8Y}5spaW)T)$`U;K-@rk zN<KL6FRX(x5ZJZg0igwtt<_p&8gahCZqS@qAxGcWSLm)~)<wNXle&nJ;pxF6{7%f@ z#du~f)5-T1R%?2hsEgFzQdOg(&(pmnU4-3AUB2oqGFuH!rdt+0TdCYvM=VaU;1!*0 zz}ar!#=0NZbKIY1X}BNvkqPIfyc>Q#&d$)OBKQDaE(=Z`eEh`7Jfi({m{Z0OE5Mp7 z+E0d(cGlEaiMJZBIXIl2Y}DH9RX!5Q@Q*_3ei}aakK?{C!;}0)Na7n2X}BH#w?1S% z;$#Y44ZDTscs7YBoQ_g>3Q8o$)#(ul&RLMq%O|&#W;ZT-7tD278Ip6odBfeg(A~&9 zW{G)XT&$G*P9Mg4C<jCx<i08^MTRE&4=+~xNWF)Dms!yXGj)C>GpJY08QE>ide8cr zC^b1ryZgLBhKM58jyiKL(A^mQR#^$wiX1rB`lrZ$b43>%OvRS@TO)5Py0UlHnV3i7 zFXv*^=fXSqdYP&1;B5H%@#4*pCqyWr?P;;B`5*sc(o5AmnbV>dizjvGi-r8T);j&y zFXM#N(UGCd-<^;H>PWzP{5-vi98XZ}fo$9CNo8(g*O4tkeYX20{<e5A&>`v5Bwu+I z!59a4&V|D0uz++!(hv`&>jGSIIvFEA!|Th4*dacFNPQQ`rkd`V^kL4^r>GS=?VE;n zRpmb}ob@2aJEc$Zi3(L@9)4m+eAQ#@55ci$LZZ5g_TDVqj$a!e(expiU}*q-NKD0h z!369n)0f&JJ5D+O5S&@BA#~9F8BNY!^KR%ra%o*z;C*#2dGCjzS^K^2$Naq!^N2NM zt5+T{$2K;K6jS~AJjbxtd*X}i!Q}C^$lbKQSWBzlr+PxXpSDSQQ)W-BSIAZf78kow zC{^()yt5bfM^5elr={UJK!4Fi<ZirvS}CQ<hbiV0_Euk!771k!C6D~O_<rqVGAe|t z*~zl1$Q`N2-=C*!>w5g;9x6)=X=JN`4sXy!6$)CrrGj1t<gXy-h^~XS)XOF7PktZk z2uj3H!ROCOQs>Upy`7PqNL0nv@hkAjtU_jxP#GX8U@EA-(Rn%-g9`O+5&~x>uztXH zti;(EZ(2iV2SKl33@Adz_McsA;_0j+O*f0KB=Zm?NbfWGN$OeMj8`mc`csqf$Npon zht@sG`;W-_l&HNjt=R2g6!4F-0_Y^JRW^2!4FyIaUzzjr*k3ij2(8%;mc2;k+^?J6 zX@6UPzE{?Oq>AQ(Gl9rod=|7}tLz1x%g8@tR<M1R@!FGkmA|YbXi{Cbk(g-*S*HFv zuF5B)j)B-l^tzx@D8Ff0Vz_+5`2nN>vtnJHc^!SV7-Mn-G&xS#h*|@AUF4|%2U<r6 z4b@Q)R`qPGfOQA`_q|5%RWhuvZv%QW!>F$>h_P7rT87~p1Bty8bBD~J_Qsyj(^sQT zF`4WukcQBJEh|Rkn5FjZr!f}qQ==Gl$)`3*wxzr2OVVX;5#$|`%sZPr0VJQ!PZS>I z4%tGz>9(F0-Cx9MFSP`6pNsQx^^4$ga=CUxelh-?BGDwv{#ND$IfOq!ND03%IGmGX z^iE}<V<j_#sUiN$Aami!tmZ=59jqO=lMz1;+P;nF_)C!2^z_@R=wRiOZ<rb3UUPzF zH1VE$@kwX_Nqb9-F?hlVL-XLZlOLL1+W0x8S^7(o8ha>Xu(xKx%PR~}d$?setiwR| zGmL?Fi5p8}kASJL5H+9H7JU&fvttXm))w9;X*nVd+t`gF2YHT;q$j8XS%93NHsL}1 z1$#(xf)bGrXb#W@^;*&*cZWcCSlTt_ok~Y`0g_VmpdFS)BO+B3H(|54mcg<h+TDT! zBqjL_q6p|<yaLiIJeRH>gIil9f#(424_64^<7=ud-6`E;V0L1bxvG||ebI`05@mj0 zD`DT?&%#tRf|wn#FJcf>?cn7D`Qhh#603pzi57<+ZwFT$Rl^|<le~SG<2~yAKo*NS z!n9REND1rFGx06X38_bHY2O?DlHa4Xb`_(M%()o(Zak1oWVqw~qVoKU^7~G_YXrnX zG)3dDXBxf13XBk2CW}cLRaq##twFrg%owY8xA?)Y#Y*dJX{@hH@!Gk?2gMe{i-U}X z1K1~z;!KtQ<@ISqOaCk4n7IL1diY|M6~IoBFSd>nGdI$w-Wx*IvcA)A<VZwTF1jjl zEA%Xy5&bdO>+|jKOZna6*b!)!*8FjpHL%|DyyKrjKH?Qob_0?U2|&M1IET6bWk--1 zh;+UiufaKY3ZG=nD|vy^fN1^IhvK2?t^@a=efS>LU6MnS*#+XUWqcd5SNmQV!*!SX zPl%)Loh2_$eFbV<)qgYUFgGKY=F@T|^Jg}Ty!$x%7Jj);H@O*9nbIYfNbr^TQP$AU zK{v6By51DJZK)oIZqC&JEj^0Qq3<o|*}Wk~*ay;*qevoaLi&g+ss%qwc5AQp%{Ar3 z+|+iqi29Go9^NyB%a*Z=(i0;5Z}gk8L=k{x+(}0}x|iVp)|qHj$J_S;zrKjoz?OO( zd@PT;yhi;gw{>dDWt#~x*#icOvR`m7qy;CI+4qB-BIlA*M5pJpB5~_eOLZnI?_j_5 zr`>k2X;0e^oq^YI8K;9n7kHZpg{juriQfe!vf?D4WF5BF5!hKVapjugeIJ8*+r6TG zj4@e@dqsS9V0%Jv?We?=W);Y)qZ(Jf2z8kRQ?VvkNn_Awjc@vp)AqA!=gIp%-DRK| zFrqvzrdd7h)tfUpQpf=>jpB0O4MMxMzG-j0OQY<Hw0glC@*MP+RMzY1J9sT5>ng&P zeb9Tn?sBABLHR1y^>MLnV=Ku2zc{dcd;3eNAbKnI64b1E7|<DWbx5t%#`}f8`csn{ z|4hh5(2Xq*TbXs1ovV9nJsqdxOMe<uv#<68=s!AXUNlnwv82X56VmSOqAU83D)pqb z#hs!l(dg)Sw7j}Jv|7X{)xLOiD(EXSQ)-WPYRWOzA~mF`J}esJOdI_3Mxj%0JP3ez zr)B_pu?Jh(GzRUdcTKzPD|?@{TIYj;W%xPBxDv)m)Gp6k?LXlTB$uOGb;M>2x>K{8 zZu73`*V$*}lN=UD0yk=IZpPe9<4dML`Dp~|$zXXa=n_s)G;+G1v8TU{hqLT*E%C{b zi=nKBoF!puI9-TZQES^>y=7bWqk`(hnEl69<AQphkWGA8-mAJQ)qd7-vR{c*2n&qC z?`d-<k~f0PN-^c{xl)WAQ{nplJW`{Dtcm++>fx|&Tg@ateSfNjM#kWv8Y5U!Am@%# zN7a8O(_7wuEVbsHvwWCQ^5(t{#FTvj;8IsmjgsSkEh0&^COxXRlWlBl?z+Fz2pnGb zs6s=YY-PZ<e#cu;Q(O0V>dkTPS~bQj*A{YW`}H~Gn$^?fj`yGUaqMk6GA803#one* zK#oc{y!NsGoH^wExue#oqP<TZ`52jVRNJ?_ARl=Db*lCC!_dNHKg?$&Z$_-nr-tcl z<%^-i=Ox&!$c(rdcXJxa=lgkKI;G@BbR*eZd=hy?yz-~$PjVx^@n47VkdYght7Q9m z8DkVR9~D|YD3o!=iYTHdca2|an{6B{LuN|SCOM=omClf46*v?8IN5!@`IdZ_q^8dB zqqpN277ke%IYxInIU9CAaa5{^vmOX<965I6Jgi3imsL-J5pB8b1?KLK{rN+P094pN zp9xFCoB%pmhEEZ%qWp*W)WC|I17MHhG{1qo7w08AemVkOspZYV$LR}JTNB!=BhZpo zbnjfg>;OhAk-Y?upqYtEP%liyGtr05_z&KZ7eBKYdG;h8-^4rUJMLPdyhDB=TXpW) zqt)n5fA$4Sf1c-oee`2N3;jpgYSgwrdjHYY8nTT@>pwb9l8?7ns%bLo^}|3rp9E*M zz2f@QQ)|<sd@=T|lUE3}=VRaOHeQ)=xTyACPjd&>?QVRN&fd-Etl{cTKVKp?+`YH& zyBTGdr;hH=U8$kL{q+t3&u_;=y`R`ELi_){NaY%vc_lXD6o`7|j7a-anfe+k(+V&* zsoPu1TJTf<QP;Nfy4BHqqv>*mmW$tn*8FYNaiKpgwY@!;`SdXMuvTGShS8;f>KVnZ zdef7=#AGec@0|Iyfy(y>TAOzp3t2T;y{lQWFBtP{8&cge>k1s9y{Ew$bjn~i6U7H1 zy7ve@81igY><M)Lo5iwxv%F7TH_r}%t>~+2i|I^^E+1#(IeGNd_d?-r=rz!<s(;_x zx0KZdbae+=LZb;e!Sj40r;+POkMr>ZHnQCA&jpDQM&ZlU-Th}Lb$6|G)7C+Q*JpOG zVx+^Yq5kwqYom+%k0o`n<1GEhlsZ+BhEI!hsQqj@gHtsPwcMnau)HqV2~+}LTYpoY zV;keCqrX6UW{@@15pc@Ev+&uB;9*h+L(5Cef#my>QeQ)6C-n^S5@e*^*<Z-itgvz% z9$84=*zZC|Q-g$mN)<c$oKYxGD_oT4`kpUd5HcFEj7-fa<4*gWaVs7~kE<);Eu@N- zek)t?A6+nBzDu{xk=2>1>YJ<{1)MfXcN*1`5&_{k9F-c_cEW3A{n-!nDXQZfjsv;g zz<wp?SoQYrK~L(?Gr`T|I^T_*K8F91@nsBqt_DRs?0&T)%%`=k5XlH58bwdCn%0x+ z5Q#ha>U@+bQU#9?ixhYE)v!<_4LgS9%wAgTVRxfb@62g$f>Cz2duNTZSKL2~73IY8 zi!qb*|KL=Jd+~d#=$!1j{Mi9^NK0(>nL0K|$G8JFd`xeCos`XQ^;x8vO`67?vp^MC zb>0i~hu~WF_K;RN*{S3@ci`R7S>(lY770ERH0lTO+1vYi0PJ_8proz92}D?kxU>)T zn7C3pQP4%w{V3=}!TCXRr#92ST6*Wlf)qIcfxgx{v-Vz$<!U@<G`E9x^#atXS$m;l zsWEBCkpF2k*;U1-A#i3bGh1tQc8urRS_X6slGTiZ>!?P5dw=$|Z>|St+>P<U6<2~U zIHiOh9LyaE;QM%$Im8NIMwdvU+EfLD8ecRc7iTbctO37S1NDI6IWx#S(9?pfOOMt% z#=Mc5kqTc<7?xgi_mRG5(6id9gUCvIC+3s7QT#akhb3{^p7N{vO6Q}|(_B4unAdt= zSqEuHX{L<K<p0n*bHX4!Tj-KVk5%LVD`2j?AAFz~<d?D1>XWq>*oj)`_Hi7pbnlXy zD{a9g($tt;dE0l_K$WeldM<4#)#qJnMs>Q%<(MJ%(3O~9dXBx^+Ux8SpOD8sm()Ri zw!LeSaJGuFwpJ3T|H#trSto-e`;a5zS-KD)XYlAyc}8BoI$#k0rYE+$F&i=Ur*hSL zN~*-w{l{2aL^WUMNRi0M=~1}a+Dka9w{CZ@DNq!h1+NEJ((UR}?Dh-sOq%_(c(z-( zRx<R%q9xU1u$7+rPr6d}x=-%|MM>IYuV=qB$y@C8?Eh5fowLKT3pKSD=xRmJbuOpQ z1hQ7}{^?JRbQd$*Tc@K9CH?L3>^-9F_9Ty2>Y?uglkvb~Cy%Bx%J5lIvFzGizh}As z4&H;+N#p}esGcZK;(xj<;Ri)3{1DtX!kVD@v?k2J7$dS?)0!wwtDZ6$ufpTR8r(0M zOs89*+tf$?S($Z739p;ii4_&vPG9udYVDNg-k&qA_twvXGX<UNiXUCwj1|vQM<;c) zIu~5W{2--Vd5n+V`Lo$$9?M`1KCo8x3?S9Lnz;+P0%dro?WJdhAH)yWg%SF%r!}tk z8Quak9oQCYb}J-=knQdGdoQkn&p7uIuD%_we;upEJ>)Ec==`YloK9tsO(>5v=iOmB z$tFx&fv&x|^Z5pPkV;zB+(2hIMZv{M>_k<(do9`%mlfNvZ+o}MLhm=l-QmCcg~$5O zf%AC8V^E}y*UA!Bhb}r9D^AX<rcAqN6lq}#6*?3Fxf`nn)}fCkXB&c~re}bi#2b}y z4|_<&S#TK^`P3T)b`yWu7RAzi7|3Z_KQ6?K&a{l)*w>+sFBAQ6o?-8uTz8K$+LI4J zHkPOn&hO3Nb#JJech{XcIz1y@RE%=sEwa+sV4B0z;)9x2<rNyO;c02*l~20Wx*50k z=Q8X6F)TDR2zzh@WWdRWk}RqLq1z4_`k+CbE0d^D^&ystS3`cIXZgXCcrD(szH7a@ z(a0}L{&Vfgmc5vsM7)wdk(`e6_^{E!b#Gz#*E-jd<5zKqeFDA5W?iVUZH0GvV}ERy zizR+JGz$L9t@urp5-%KQEYrgZ45nU2pT`~YWaGW&etg<~Xx<dl$QZiL^Tbw0mrPGs zX5Osd>YeQxN~|h8@Yx69ML`|ziXf?WGqUkNkB4`7e_ojCN6-5*vN;vCw9cawI654> zD6h!Nc|qrOIr$P`#ns3X`dvFtUD&|kI&DQBF6<5TfBJ9J#^S2FA7Ozg9>iW!x2V>y zLi8y2YHylt8Iy}Uk6gTqrT>LspjRFM^WXIJ^xm9DCX80|?=jy~zxJizwQF(pV&OUV zBt6&_!(g@8?NstEqhmYt;~lB35$|+KLn2*7_&ALldFv=9)(5<X6d~G@`7-W^M4qnX z`<?iF_zTa8qzQJ!cJPqTwZ|K`71!>U+$wZ@%U5&}p%0XMB=dPh1T*$!uA|lz+ONcK zVvAd4$3gwg_=M;2`Tw@~>h*sVUBI}0@%n$n=Pt{uyz=kyj^*Oxa;IlP_L<HjN9HN= z;4^fcJ*0VHrzvK4C1%Ha&eUMxAE%SfIEW2tZYt=Vrkzg(h;px4Q*8B};07TzszLZM zE_45`ytA#<vpnz5x7O`v!ainKuvT6<<eoc~?Zq>5UY;Tkw#C;?jF{82K{?W~pT+Fp zI|P4xSmZ8V9I^=KAL2JfhxyI!BlaMF01<8Om|_!l`us|rE$i`mP^5K1&arx4nMWZN z@DXqp!sFP3PvRNWyP6W~&Gt}l*<u_~SGptTH9qG4eyrKm__-3#@WQa4|3~FGu;N++ zq5j^QBKtPgQLR?%Y36#{OYX}wf_>snO4+fNu8QnG^c-0$<OdLICNJP+bt-6$Yz6XE z*x}mStxn~9F7cK8Twld*wLV3Ue-NEFejita$s8q?&P3Z=ipl$>)0W%#2C|*_F+O*4 zGsyf=lmyG*L6LX6`#wMNMK8r?BJYUkD~APJ;^Dqm|5n^VPRiHib85S*mUvJ~MxC-X zkaOS*&f8)x6xX+$OTXvU1HG!b(8!UfSS|LDQ{{tIvlpM0Ugxv%T^n(idQ5D@2z3`R zg(vYJ{#qnG5|Vc_%fE~I-#Z}@Z!G>fe(2fa`G!~fbB6V^W`h}+I}If9yy^Ns4m5!0 zLzx8d+5O-K)<0(fJCTSDyhUykp9g2z7qeY>qyKDJhif)iPq=stFE1Hxxr^QR2pkDd z;{hY*kjx__%jwSH(<xD4c6O)F;nSW{27T+%AooIJ0-KXVD*vwbMWUPD83rIK#>t)| zvjBw8yj_a<LIS~&%o$ZG?BQkXROJsUy3du>ha`~v82XK+<ZL|T5Z>acg_GTp)}Mpa zJ7ci!awN=7YzPleU9BLGx4T>!7o;CXo|m+PjkEgaxYvD;9G}3pJnA&Y{=8#Nj(t2{ z^+nym$n(0&H|)e8%U%R+gI++}Slpl^>S^aQV{eB}MbA#NV%eGOMRp!&;9~q%HlM6) zV*+~?6Ah4$EBVEI-jC0&ZB(on`7#y9l+B91o38@SimAFH7;mYx-gej-M7fYc{VBJu zgK{3s;@PT_S$Qvxed1M-#W%%+X|0PcEb;BK8p_vX4Omh9B|EWpWEg-JmvLn;zHeT( z*8U@}D6&**d8yz#Y}TpY1TSf>=$YUzx`TtrET819vn;wFpVW7})}X8byoHxXr{c-B z>OVqTrS3}BUw-2U_bOY?)MpOazrsC|G$V{TJ<8_Gxm<ExGX<LklYA4ngbLF1B26=O zN1)GsWjJ|Vg@JQmM;LGF(%KU)j7a7_e(*l$_EKGw{@+zi-&-bJKhT@<RH0Gt#avO{ zLM;xt`jYyta3N;!Fy<3GVVy;9Jx&cL8XP^Y99`M-#HPsBU)AG$CwqMa%}S(Bvgvqu zqQ(dI!3a}NHEp7b+FLG9Ih3On$sJ=2K=61omGkpK%=yV{w9>NSv~TB5+t0)&w|*wL w)>1k3u6)5l*J%E8F-9Zp^bPm65U*DjV(+nJHz06QR%Tju_8*@#nfCtw4+*pAX#fBK literal 0 HcmV?d00001 diff --git a/builtin/annotate.c b/builtin/annotate.c deleted file mode 100644 index da413ae0d1..0000000000 --- a/builtin/annotate.c +++ /dev/null @@ -1,22 +0,0 @@ -/* - * "git annotate" builtin alias - * - * Copyright (C) 2006 Ryan Anderson - */ -#include "git-compat-util.h" -#include "builtin.h" -#include "argv-array.h" - -int cmd_annotate(int argc, const char **argv, const char *prefix) -{ - struct argv_array args = ARGV_ARRAY_INIT; - int i; - - argv_array_pushl(&args, "annotate", "-c", NULL); - - for (i = 1; i < argc; i++) { - argv_array_push(&args, argv[i]); - } - - return cmd_blame(args.argc, args.argv, prefix); -} -- gitgitgadget ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 5/5] fix unproper comment in Makefile 2019-11-03 3:51 [PATCH 0/5] Teach git annotate to use parse option instead of its own argv Abimbola Olaitan via GitGitGadget ` (3 preceding siblings ...) 2019-11-03 3:51 ` [PATCH 4/5] remove-annotate: delete builtin annotate file Abimbola via GitGitGadget @ 2019-11-03 3:51 ` Abimbola via GitGitGadget 2019-11-04 4:13 ` Junio C Hamano 4 siblings, 1 reply; 9+ messages in thread From: Abimbola via GitGitGadget @ 2019-11-03 3:51 UTC (permalink / raw) To: git; +Cc: Abimbola Olaitan, Junio C Hamano, Abimbola From: Abimbola <craftwordltd@gmail.com> Signed-off-by: Abimbola <craftwordltd@gmail.com> --- Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/Makefile b/Makefile index a632505ad9..41f0fcb78f 100644 --- a/Makefile +++ b/Makefile @@ -1033,7 +1033,6 @@ LIB_OBJS += zlib.o BUILTIN_OBJS += builtin/add.o BUILTIN_OBJS += builtin/am.o -// BUILTIN_OBJS += builtin/annotate.o BUILTIN_OBJS += builtin/apply.o BUILTIN_OBJS += builtin/archive.o BUILTIN_OBJS += builtin/bisect--helper.o -- gitgitgadget ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 5/5] fix unproper comment in Makefile 2019-11-03 3:51 ` [PATCH 5/5] fix unproper comment in Makefile Abimbola via GitGitGadget @ 2019-11-04 4:13 ` Junio C Hamano 0 siblings, 0 replies; 9+ messages in thread From: Junio C Hamano @ 2019-11-04 4:13 UTC (permalink / raw) To: Abimbola via GitGitGadget; +Cc: git, Abimbola Olaitan "Abimbola via GitGitGadget" <gitgitgadget@gmail.com> writes: > From: Abimbola <craftwordltd@gmail.com> > > Signed-off-by: Abimbola <craftwordltd@gmail.com> > --- > Makefile | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/Makefile b/Makefile > index a632505ad9..41f0fcb78f 100644 > --- a/Makefile > +++ b/Makefile > @@ -1033,7 +1033,6 @@ LIB_OBJS += zlib.o > > BUILTIN_OBJS += builtin/add.o > BUILTIN_OBJS += builtin/am.o > -// BUILTIN_OBJS += builtin/annotate.o > BUILTIN_OBJS += builtin/apply.o > BUILTIN_OBJS += builtin/archive.o > BUILTIN_OBJS += builtin/bisect--helper.o If you are ever going to reroll this topic, please clean up your series before sending it out. 3/5 introduced a bogus line this step removes; it should have used the right comment char "#" instead, or better yet, just drop both. Find where you are doing "oops, the change done in the previous step was wrong, and here is a commit to bring it into the right state" and learn to use "rebase -i" to eliminate such a "oops, another band aid on top"; it is a useful skill. Having said that, if the topic is only to remove builtin/annotate.c, I would expect that it would be a single patch topic (i.e. Makefile, reference in git.c and builtin/annotate.c all must be modified or removed at the same time). Thanks. ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2019-11-04 4:14 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-11-03 3:51 [PATCH 0/5] Teach git annotate to use parse option instead of its own argv Abimbola Olaitan via GitGitGadget 2019-11-03 3:51 ` [PATCH 1/5] remove-annotate: change cmd_annotate to cmd_blame Abimbola via GitGitGadget 2019-11-03 19:59 ` Jakub Narebski 2019-11-04 4:04 ` Junio C Hamano 2019-11-03 3:51 ` [PATCH 2/5] edit the makefile Abimbola via GitGitGadget 2019-11-03 3:51 ` [PATCH 3/5] remove-annotate: comment out annotate BUILDIN_OBJS Abimbola via GitGitGadget 2019-11-03 3:51 ` [PATCH 4/5] remove-annotate: delete builtin annotate file Abimbola via GitGitGadget 2019-11-03 3:51 ` [PATCH 5/5] fix unproper comment in Makefile Abimbola via GitGitGadget 2019-11-04 4:13 ` Junio C Hamano
Code repositories for project(s) associated with this public inbox https://80x24.org/mirrors/git.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).