Merge Two Paragraphs with Removing Duplicated Lines Challenge
The goal of this challenge is to make a function that takes two paragraphs and output a concatenated result with removing the duplicated overlapped lines due to redundancy (but a single copy of the part of overlapped lines should be kept to avoid information loss). Each input paragraph is with the follows specifications.

The leading/trailing spaces in each line have been removed.

No empty line.


The output merged paragraph follows the rules as below.

Input paragraph 2 is concatenated after input paragraph 1

If the line(s) from the start of the input paragraph 2 is / are sequenced same (overlapped) as the end of input paragraph 1, just keep single copy of the sequenced duplicated lines.

The definition of duplicated lines here:

The content in two line should be totally the same, no “partial overlapping” cases need to be considered.

The content sequence in two blocks of lines should be totally the same.




Example Input and Output

Inputs
Input paragraph 1 example:
Code Golf Stack Exchange is a question and answer site for programming puzzle enthusiasts and code golfers.
It's built and run by you as part of the Stack Exchange network of Q&amp;A sites.
With your help, we're working together to build a library of programming puzzles and their solutions.
We're a little bit different from other sites. Here's how:
Ask questions, get answers, no distractions
This site is all about getting answers. It's not a discussion forum. There's no chit-chat.

Input paragraph 2 example:
We're a little bit different from other sites. Here's how:
Ask questions, get answers, no distractions
This site is all about getting answers. It's not a discussion forum. There's no chit-chat.
Good answers are voted up and rise to the top.
The best answers show up first so that they are always easy to find.
The person who asked can mark one answer as &quot;accepted&quot;.
Accepting doesn't mean it's the best answer, it just means that it worked for the person who asked.
Get answers to practical, detailed questions
Focus on questions about an actual problem you have faced. Include details about what you have tried and exactly what you are trying to do.
Not all questions work well in our format. Avoid questions that are primarily opinion-based, or that are likely to generate discussion rather than answers.


Expected Output

The two block of text are the same, so keep single overlapped part after merging.

Code Golf Stack Exchange is a question and answer site for programming puzzle enthusiasts and code golfers.
It's built and run by you as part of the Stack Exchange network of Q&amp;A sites.
With your help, we're working together to build a library of programming puzzles and their solutions.
We're a little bit different from other sites. Here's how:
Ask questions, get answers, no distractions
This site is all about getting answers. It's not a discussion forum. There's no chit-chat.
Good answers are voted up and rise to the top.
The best answers show up first so that they are always easy to find.
The person who asked can mark one answer as &quot;accepted&quot;.
Accepting doesn't mean it's the best answer, it just means that it worked for the person who asked.
Get answers to practical, detailed questions
Focus on questions about an actual problem you have faced. Include details about what you have tried and exactly what you are trying to do.
Not all questions work well in our format. Avoid questions that are primarily opinion-based, or that are likely to generate discussion rather than answers.



Rules of Challenge
This is code-golf. The answer with the least bytes wins.
Python 3.8 (pre-release), 104 bytes

def o(a,b,i=None):
 while(i:=a[:i].rfind(b[0]))+1:
  if b.find(a[i:])==0:return a[:i]+b
 return a+'\n'+b

Try it online!
I've come up with this as my first ever Code Golf challenge. Defines function o (short for overlay) which returns string a overlayed with string b, or their concatenation if there is no overlap.
It repetitively searches backwards in a for the first letter of b and, if a match is found, compares from that point on in a to the beginning of b until an overlap is found or a has been fully scanned.