Re: FW : Crash/Bug report

Christian HJ Wiesner <[email protected]>
Newsgroups gmane.comp.video.vdubmod.devel
Message-ID <[email protected]>
Hi Jean,

can you please run 'mkvinfo' from the 'mkvtoolnix' package ( 
http://mkvmerge.matroska.org ) on your MKV file from Command Line, and 
send the output file ( .txt ) to the official VirtualdubMod development 
mailing list : [email protected]

We will have a look at this then. Just make sure you are using 
VirtualdubMod 1.5.10.1 , as older versions may have problems with 
younger matroska files ( we introduced a new lacing system recently, and 
apps based on older libs cant handle these files ).

Christian
VdubMod and matroska project admin

>
> Subject:
> Crash/Bug report
> From:
> Jean-Philippe Scotto Di Rinaldi <[email protected]>
> Date:
> Wed, 24 Dec 2003 12:47:41 +0100
> To:
> [email protected]
>
>
> Hello.
>
> When i open an mkv file, if i make "play", or "save", the program crash.
>
> Here the crash log file.
>
> VirtualDub crash report -- build 2366 (release)
> --------------------------------------
>
> Disassembly:
> 00504f00: 0400            add    al, 00
> 00504f02: 668b466c        mov    ax, [esi+6c]
> 00504f06: 8b4b30          mov    ecx, [ebx+30]
> 00504f09: 33d2            xor    edx, edx
> 00504f0b: 668bd0          mov    dx, ax
> 00504f0e: 3b510c          cmp    edx, [ecx+0c]
> 00504f11: 0f85b7000000    jnz    MatroskaReadStream::ReadCBR+7fe 
> (00504fce)
> 00504f17: 8b4654          mov    eax, [esi+54]
> 00504f1a: 85c0            test   eax, eax
> 00504f1c: 7504            jnz    MatroskaReadStream::ReadCBR+752 
> (00504f22)
> 00504f1e: 33f6            xor    esi, esi
> 00504f20: eb08            jmp    MatroskaReadStream::ReadCBR+75a 
> (00504f2a)
> 00504f22: 8b7658          mov    esi, [esi+58]
> 00504f25: 2bf0            sub    esi, eax
> 00504f27: c1fe02          sar    esi, 02
> 00504f2a: 8975dc          mov    [ebp-24], esi
> 00504f2d: 8d4900          lea    ecx, [ecx+00]
> 00504f30: 8a450b          mov    al, [ebp+0b]
> 00504f33: 84c0            test   al, al
> 00504f35: 0f858c000000    jnz    MatroskaReadStream::ReadCBR+7f7 
> (00504fc7)
> 00504f3b: 8b7dec          mov    edi, [ebp-14]
> 00504f3e: 3bfe            cmp    edi, esi
> 00504f40: 0f8d81000000    jge    MatroskaReadStream::ReadCBR+7f7 
> (00504fc7)
> 00504f46: 8b4314          mov    eax, [ebx+14]
> 00504f49: 8b7044          mov    esi, [eax+44]
> 00504f4c: 8b0cbe          mov    ecx, [esi+edi*4]
> 00504f4f: 8b01            mov    eax, [ecx]
> 00504f51: ff500c          call   dword ptr [eax+0c]
> 00504f54: 8b00            mov    eax, [eax]
> 00504f56: 8b55e8          mov    edx, [ebp-18]
> 00504f59: 8b4d14          mov    ecx, [ebp+14]
> 00504f5c: 2bc2            sub    eax, edx
> 00504f5e: 894508          mov    [ebp+08], eax
> 00504f61: 3bc8            cmp    ecx, eax
> 00504f63: 8d4514          lea    eax, [ebp+14]
> 00504f66: 7c03            jl     MatroskaReadStream::ReadCBR+79b 
> (00504f6b)
> 00504f68: 8d4508          lea    eax, [ebp+08]
> 00504f6b: 8b08            mov    ecx, [eax]
> 00504f6d: 894d08          mov    [ebp+08], ecx
> 00504f70: 8b0cbe          mov    ecx, [esi+edi*4]
> 00504f73: 8b11            mov    edx, [ecx]
> 00504f75: ff5204          call   dword ptr [edx+04]
> 00504f78: 8b5508          mov    edx, [ebp+08]
> 00504f7b: 8b75e8          mov    esi, [ebp-18]
> 00504f7e: 8b7de4          mov    edi, [ebp-1c]
> 00504f81: 03f0            add    esi, eax
> 00504f83: 8bca            mov    ecx, edx
> 00504f85: 8bc1            mov    eax, ecx
> 00504f87: c1e902          shr    ecx, 02
> 00504f8a: f3a5            rep    movsd      <-- FAULT
> 00504f8c: 8bc8            mov    ecx, eax
> 00504f8e: 8b4510          mov    eax, [ebp+10]
> 00504f91: 03c2            add    eax, edx
> 00504f93: 83e103          and    ecx, 03
> 00504f96: 894510          mov    [ebp+10], eax
> 00504f99: 8b4514          mov    eax, [ebp+14]
> 00504f9c: f3a4            rep    movsb
> 00504f9e: 8b7de4          mov    edi, [ebp-1c]
> 00504fa1: 8b75dc          mov    esi, [ebp-24]
> 00504fa4: 2bc2            sub    eax, edx
> 00504fa6: 03fa            add    edi, edx
> 00504fa8: 85c0            test   eax, eax
> 00504faa: 894514          mov    [ebp+14], eax
> 00504fad: 8b45ec          mov    eax, [ebp-14]
> 00504fb0: 0f9e450b        setle  [ebp+0b]
> 00504fb4: 40              inc    eax
> 00504fb5: c745e800000000  mov    dword ptr [ebp-18], 00000000
> 00504fbc: 897de4          mov    [ebp-1c], edi
> 00504fbf: 8945ec          mov    [ebp-14], eax
> 00504fc2: e969ffffff      jmp    MatroskaReadStream::ReadCBR+760 
> (00504f30)
> 00504fc7: c745ec00000000  mov    dword ptr [ebp-14], 00000000
> 00504fce: 8a450b          mov    al, [ebp+0b]
> 00504fd1: 84c0            test   al, al
> 00504fd3: 742a            jz     MatroskaReadStream::ReadCBR+82f 
> (00504fff)
> 00504fd5: 8b4b14          mov    ecx, [ebx+14]
> 00504fd8: 85c9            test   ecx, ecx
> 00504fda: 7406            jz     MatroskaReadStream::ReadCBR+812 
> (00504fe2)
> 00504fdc: 8b11            mov    edx, [ecx]
> 00504fde: 6a01            push   01
> 00504fe0: ff12            call   dword ptr [edx]
> 00504fe2: 8a450b          mov    al, [ebp+0b]
> 00504fe5: 84c0            test   al, al
> 00504fe7: 743e            jz     MatroskaReadStream::ReadCBR+857 
> (00505027)
> 00504fe9: 8b4b10          mov    ecx, [ebx+10]
> 00504fec: 85c9            test   ecx, ecx
> 00504fee: 0f8403010000    jz     MatroskaReadStream::ReadCBR+927 
> (005050f7)
> 00504ff4: 8b11            mov    edx, [ecx]
> 00504ff6: 6a01            push   01
> 00504ff8: ff12            call   dword ptr [edx]
> 00504ffa: e9f8000000      jmp    MatroskaReadStream::ReadCBR+927 
> (005050f7)
> 00504fff: 8b              db     8b
>
> Windows 5.1 (Windows XP build 2600) [Service Pack 1]
>
> EAX = ffffffa1
> EBX = 00e72cf0
> ECX = 3ffffe21
> EDX = ffffffa1
> EBP = 0a74fcf0
> DS:ESI = 0023:016e9ffe
> ES:EDI = 0023:016df034
> SS:ESP = 0023:0a74fc94
> CS:EIP = 001b:00504f8a
> FS = 003b
> GS = 0000
> EFLAGS = 00010206
> FPUCW = ffff027f
> FPUTW = ffffffff
>
> MM0 = 77f47f9877f48497
> MM1 = 00000000015d0648
> MM2 = 77f47f9877f48497
> MM3 = 00c40178016e38e0
> MM4 = 77f48a3a77f47f98
> MM5 = 77f48a3a00000000
> MM6 = ce16200000000000
> MM7 = 9f8d000000000000
>
> Crash reason: Access Violation
>
> Crash context:
> An out-of-bounds memory access (access violation) occurred in module 
> 'VirtualDubMod'...
>
> ..while running thread "Dub-I/O" (thread.cpp:120).
>
> Thread traces:
>
> Thread 00000774 (Main thread)
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Init.cpp(344)
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Init.cpp(387)
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Init.cpp(407)
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Init.cpp(467)
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\VideoSource.cpp(646) 
>
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\VideoSource.cpp(676) 
>
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\VideoSource.cpp(1819) 
>
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\VideoSource.cpp(1837) 
>
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\FilterSystem.cpp(429) 
>
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\FilterSystem.cpp(569) 
>
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\VideoSource.cpp(646) 
>
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\VideoSource.cpp(676) 
>
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\VideoSource.cpp(1819) 
>
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\VideoSource.cpp(1837) 
>
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\FilterSystem.cpp(429) 
>
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\FilterSystem.cpp(569) 
>
> Thread 00000488 (AsyncBlitter)
> Thread 00000288 (Dub-I/O)
> Thread 000006bc (Processing)
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Dub.cpp(2580)
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\VideoSource.cpp(1614) 
>
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\VideoSource.cpp(1649) 
>
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Dub.cpp(2585)
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Dub.cpp(2738)
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Dub.cpp(2740)
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Dub.cpp(2748)
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Dub.cpp(2788)
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Dub.cpp(2580)
>     C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\VideoSource.cpp(1614) 
>
>
> Thread call stack:00504f8a: MatroskaReadStream::ReadCBR()
> 00503c83: MatroskaReadStream::Read()
> 0052ccf1: VDFraction::scale64r()
> 005041ae: MatroskaReadStream::Read()
> 004b4df6: DubSource::read()
> 00403cf9: AudioStreamSource::_Read()
> 0050cd59: VideoSourceMatroska::_read()
> 0050cd62: VideoSourceMatroska::_read()
> 004031c4: AudioStream::Read()
> 00406031: AudioSubset::_Read()
> 004031c4: AudioStream::Read()
> 00470490: VDDubIOThread::MainAddStreamFrame()
> 0046fd2a: VDDubIOThread::ThreadRun()
> 00527f7f: VDThread::StaticThreadStart()
> 00567a4c: _threadstartex@4()
> 77e5d33b: kernel32!RegisterWaitForInputIdle [77e40000+1d2f8+43]
>
> -- End of report
>
>------------------------------------------------------------------------
>
>VirtualDub crash report -- build 2366 (release)
>--------------------------------------
>
>Disassembly:
>00504f00: 0400            add    al, 00
>00504f02: 668b466c        mov    ax, [esi+6c]
>00504f06: 8b4b30          mov    ecx, [ebx+30]
>00504f09: 33d2            xor    edx, edx
>00504f0b: 668bd0          mov    dx, ax
>00504f0e: 3b510c          cmp    edx, [ecx+0c]
>00504f11: 0f85b7000000    jnz    MatroskaReadStream::ReadCBR+7fe (00504fce)
>00504f17: 8b4654          mov    eax, [esi+54]
>00504f1a: 85c0            test   eax, eax
>00504f1c: 7504            jnz    MatroskaReadStream::ReadCBR+752 (00504f22)
>00504f1e: 33f6            xor    esi, esi
>00504f20: eb08            jmp    MatroskaReadStream::ReadCBR+75a (00504f2a)
>00504f22: 8b7658          mov    esi, [esi+58]
>00504f25: 2bf0            sub    esi, eax
>00504f27: c1fe02          sar    esi, 02
>00504f2a: 8975dc          mov    [ebp-24], esi
>00504f2d: 8d4900          lea    ecx, [ecx+00]
>00504f30: 8a450b          mov    al, [ebp+0b]
>00504f33: 84c0            test   al, al
>00504f35: 0f858c000000    jnz    MatroskaReadStream::ReadCBR+7f7 (00504fc7)
>00504f3b: 8b7dec          mov    edi, [ebp-14]
>00504f3e: 3bfe            cmp    edi, esi
>00504f40: 0f8d81000000    jge    MatroskaReadStream::ReadCBR+7f7 (00504fc7)
>00504f46: 8b4314          mov    eax, [ebx+14]
>00504f49: 8b7044          mov    esi, [eax+44]
>00504f4c: 8b0cbe          mov    ecx, [esi+edi*4]
>00504f4f: 8b01            mov    eax, [ecx]
>00504f51: ff500c          call   dword ptr [eax+0c]
>00504f54: 8b00            mov    eax, [eax]
>00504f56: 8b55e8          mov    edx, [ebp-18]
>00504f59: 8b4d14          mov    ecx, [ebp+14]
>00504f5c: 2bc2            sub    eax, edx
>00504f5e: 894508          mov    [ebp+08], eax
>00504f61: 3bc8            cmp    ecx, eax
>00504f63: 8d4514          lea    eax, [ebp+14]
>00504f66: 7c03            jl     MatroskaReadStream::ReadCBR+79b (00504f6b)
>00504f68: 8d4508          lea    eax, [ebp+08]
>00504f6b: 8b08            mov    ecx, [eax]
>00504f6d: 894d08          mov    [ebp+08], ecx
>00504f70: 8b0cbe          mov    ecx, [esi+edi*4]
>00504f73: 8b11            mov    edx, [ecx]
>00504f75: ff5204          call   dword ptr [edx+04]
>00504f78: 8b5508          mov    edx, [ebp+08]
>00504f7b: 8b75e8          mov    esi, [ebp-18]
>00504f7e: 8b7de4          mov    edi, [ebp-1c]
>00504f81: 03f0            add    esi, eax
>00504f83: 8bca            mov    ecx, edx
>00504f85: 8bc1            mov    eax, ecx
>00504f87: c1e902          shr    ecx, 02
>00504f8a: f3a5            rep    movsd      <-- FAULT
>00504f8c: 8bc8            mov    ecx, eax
>00504f8e: 8b4510          mov    eax, [ebp+10]
>00504f91: 03c2            add    eax, edx
>00504f93: 83e103          and    ecx, 03
>00504f96: 894510          mov    [ebp+10], eax
>00504f99: 8b4514          mov    eax, [ebp+14]
>00504f9c: f3a4            rep    movsb
>00504f9e: 8b7de4          mov    edi, [ebp-1c]
>00504fa1: 8b75dc          mov    esi, [ebp-24]
>00504fa4: 2bc2            sub    eax, edx
>00504fa6: 03fa            add    edi, edx
>00504fa8: 85c0            test   eax, eax
>00504faa: 894514          mov    [ebp+14], eax
>00504fad: 8b45ec          mov    eax, [ebp-14]
>00504fb0: 0f9e450b        setle  [ebp+0b]
>00504fb4: 40              inc    eax
>00504fb5: c745e800000000  mov    dword ptr [ebp-18], 00000000
>00504fbc: 897de4          mov    [ebp-1c], edi
>00504fbf: 8945ec          mov    [ebp-14], eax
>00504fc2: e969ffffff      jmp    MatroskaReadStream::ReadCBR+760 (00504f30)
>00504fc7: c745ec00000000  mov    dword ptr [ebp-14], 00000000
>00504fce: 8a450b          mov    al, [ebp+0b]
>00504fd1: 84c0            test   al, al
>00504fd3: 742a            jz     MatroskaReadStream::ReadCBR+82f (00504fff)
>00504fd5: 8b4b14          mov    ecx, [ebx+14]
>00504fd8: 85c9            test   ecx, ecx
>00504fda: 7406            jz     MatroskaReadStream::ReadCBR+812 (00504fe2)
>00504fdc: 8b11            mov    edx, [ecx]
>00504fde: 6a01            push   01
>00504fe0: ff12            call   dword ptr [edx]
>00504fe2: 8a450b          mov    al, [ebp+0b]
>00504fe5: 84c0            test   al, al
>00504fe7: 743e            jz     MatroskaReadStream::ReadCBR+857 (00505027)
>00504fe9: 8b4b10          mov    ecx, [ebx+10]
>00504fec: 85c9            test   ecx, ecx
>00504fee: 0f8403010000    jz     MatroskaReadStream::ReadCBR+927 (005050f7)
>00504ff4: 8b11            mov    edx, [ecx]
>00504ff6: 6a01            push   01
>00504ff8: ff12            call   dword ptr [edx]
>00504ffa: e9f8000000      jmp    MatroskaReadStream::ReadCBR+927 (005050f7)
>00504fff: 8b              db     8b
>
>Windows 5.1 (Windows XP build 2600) [Service Pack 1]
>
>EAX = ffffffa1
>EBX = 00e72cf0
>ECX = 3ffffe21
>EDX = ffffffa1
>EBP = 0a74fcf0
>DS:ESI = 0023:016e9ffe
>ES:EDI = 0023:016df034
>SS:ESP = 0023:0a74fc94
>CS:EIP = 001b:00504f8a
>FS = 003b
>GS = 0000
>EFLAGS = 00010206
>FPUCW = ffff027f
>FPUTW = ffffffff
>
>MM0 = 77f47f9877f48497
>MM1 = 00000000015d0648
>MM2 = 77f47f9877f48497
>MM3 = 00c40178016e38e0
>MM4 = 77f48a3a77f47f98
>MM5 = 77f48a3a00000000
>MM6 = ce16200000000000
>MM7 = 9f8d000000000000
>
>Crash reason: Access Violation
>
>Crash context:
>An out-of-bounds memory access (access violation) occurred in module 'VirtualDubMod'...
>
>...while running thread "Dub-I/O" (thread.cpp:120).
>
>Thread traces:
>
>Thread 00000774 (Main thread)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Init.cpp(344)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Init.cpp(387)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Init.cpp(407)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Init.cpp(467)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\VideoSource.cpp(646)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\VideoSource.cpp(676)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\VideoSource.cpp(1819)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\VideoSource.cpp(1837)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\FilterSystem.cpp(429)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\FilterSystem.cpp(569)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\VideoSource.cpp(646)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\VideoSource.cpp(676)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\VideoSource.cpp(1819)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\VideoSource.cpp(1837)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\FilterSystem.cpp(429)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\FilterSystem.cpp(569)
>Thread 00000488 (AsyncBlitter)
>Thread 00000288 (Dub-I/O)
>Thread 000006bc (Processing)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Dub.cpp(2580)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\VideoSource.cpp(1614)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\VideoSource.cpp(1649)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Dub.cpp(2585)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Dub.cpp(2738)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Dub.cpp(2740)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Dub.cpp(2748)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Dub.cpp(2788)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\Dub.cpp(2580)
>	C:\Dvpt\VDub_1.5.x\VirtualDubMod15\VirtualDub\source\VideoSource.cpp(1614)
>
>Thread call stack:00504f8a: MatroskaReadStream::ReadCBR()
>00503c83: MatroskaReadStream::Read()
>0052ccf1: VDFraction::scale64r()
>005041ae: MatroskaReadStream::Read()
>004b4df6: DubSource::read()
>00403cf9: AudioStreamSource::_Read()
>0050cd59: VideoSourceMatroska::_read()
>0050cd62: VideoSourceMatroska::_read()
>004031c4: AudioStream::Read()
>00406031: AudioSubset::_Read()
>004031c4: AudioStream::Read()
>00470490: VDDubIOThread::MainAddStreamFrame()
>0046fd2a: VDDubIOThread::ThreadRun()
>00527f7f: VDThread::StaticThreadStart()
>00567a4c: _threadstartex@4()
>77e5d33b: kernel32!RegisterWaitForInputIdle [77e40000+1d2f8+43]
>
>-- End of report
>  
>




-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.